jQuery+php实现ajax文件即时上传的详解(2)


$(function () {
    ...接上面的代码
    $(".delimg").live('click',function(){
        var pic = $(this).attr("rel");
        $.post("action.php?act=delimg",{imagename:pic},function(msg){
            if(msg==1){
                files.html("删除成功.");
                showimg.empty(); //清空图片
                progress.hide(); //隐藏进度条
            }else{
                alert(msg);
            }
        });
    });
});


PHP
action.php中需要处理图片上传以及删除图片。图片上传时需要验证格式和大小,然后通过move_uploaded_file()方法上传图片,最后返回json格式的数据。删除图片时使用unlink()即可完成删除操作。

复制代码 代码如下:


$action = $_GET['act'];
if($action=='delimg'){ //删除图片
    $filename = $_POST['imagename'];
    if(!empty($filename)){
        unlink('files/'.$filename);
        echo '1';
    }else{
        echo '删除失败.';
    }
}else{ //上传图片
    $picname = $_FILES['mypic']['name'];
    $picsize = $_FILES['mypic']['size'];
    if ($picname != "") {
        if ($picsize > 512000) { //限制上传大小
            echo '图片大小不能超过500k';
            exit;
        }
        $type = strstr($picname, '.'); //限制上传格式
        if ($type != ".gif" && $type != ".jpg") {
            echo '图片格式不对!';
            exit;
        }
        $rand = rand(100, 999);
        $pics = date("YmdHis") . $rand . $type; //命名图片名称
        //上传路径
        $pic_path = "files/". $pics;
        move_uploaded_file($_FILES['mypic']['tmp_name'], $pic_path);
    }
    $size = round($picsize/1024,2); //转换成kb
    $arr = array(
        'name'=>$picname,
        'pic'=>$pics,
        'size'=>$size
    );
    echo json_encode($arr); //输出json数据
}


本文借助了jquery form插件来完成单文件上传功能,其实目前很很多款优秀的上传插件可以使用,有基于flash的,有基于jquery的,典型的有:jQuery File Upload。该插件支持多文件上传,支持拖拽上传等,有兴趣的同学可以先了解下。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f4364d5225b7ee84966394211d732eec.html