• 市人大常委会召开党组会议传达学习全国两会精神张轩主持并讲话 2019-03-23
  • NBL今日召开推广会 优胜队伍晋级CBA之门或将重启 2019-03-23
  • [微笑]原因很简单:房产的升值是由关联资源的增加形成的,跟房屋的产权人没有任何关系,肯定就不能让其从中获利! 2019-03-21
  • 帅气小小

    湖北福彩3o选5开奖结果:diyUpload - jQuery多张图片批量上传插件

    上传于 4年前| 杂项|网页特效 |33597 |1470
    diyUpload - jQuery多张图片批量上传插件1449

    湖北省福彩30选5 www.jkyr.net 最近更新于 3年前

    一款支持多个图片文件批量上传插件代码下载,下载包里有服务端获取图片方法,是php语言。
    
    /*
    * 服务器地址,成功返回,失败返回参数格式依照jquery.ajax习惯;
    * 其他参数同WebUploader
    */
    
    $('#test').diyUpload({
    	url:'server/fileupload.php',
    	success:function( data ) {
    		console.info( data );
    	},
    	error:function( err ) {
    		console.info( err );	
    	}
    });
    
    $('#as').diyUpload({
    	url:'server/fileupload.php',
    	success:function( data ) {
    		console.info( data );
    	},
    	error:function( err ) {
    		console.info( err );	
    	},
    	buttonText : '选择文件',
    	chunked:true,
    	// 分片大小
    	chunkSize:512 * 1024,
    	//最大上传的文件数量, 总文件大小,单个文件大小(单位字节);
    	fileNumLimit:50,
    	fileSizeLimit:500000 * 1024,
    	fileSingleSizeLimit:50000 * 1024,
    	accept: {}
    });
    
    服务端用法 php代码如下
    // Make sure file is not cached (as it happens for example on iOS devices)
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    
    
    // Support CORS
    // header("Access-Control-Allow-Origin: *");
    // other CORS headers if any...
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
        exit; // finish preflight CORS requests here
    }
    
    
    if ( !empty($_REQUEST[ 'debug' ]) ) {
        $random = rand(0, intval($_REQUEST[ 'debug' ]) );
        if ( $random === 0 ) {
            header("HTTP/1.0 500 Internal Server Error");
            exit;
        }
    }
    
    // header("HTTP/1.0 500 Internal Server Error");
    // exit;
    
    
    // 5 minutes execution time
    @set_time_limit(5 * 60);
    
    // Uncomment this one to fake upload time
    usleep(5000);
    
    // Settings
    // $targetDir = ini_get("upload_tmp_dir") . DIRECTORY_SEPARATOR . "plupload";
    $targetDir = 'upload_tmp';
    $uploadDir = 'upload';
    
    $cleanupTargetDir = true; // Remove old files
    $maxFileAge = 5 * 3600; // Temp file age in seconds
    
    
    // Create target dir
    if (!file_exists($targetDir)) {
        @mkdir($targetDir);
    }
    
    // Create target dir
    if (!file_exists($uploadDir)) {
        @mkdir($uploadDir);
    }
    
    // Get a file name
    if (isset($_REQUEST["name"])) {
        $fileName = $_REQUEST["name"];
    } elseif (!empty($_FILES)) {
        $fileName = $_FILES["file"]["name"];
    } else {
        $fileName = uniqid("file_");
    }
    
    $md5File = @file('md5list.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    $md5File = $md5File ? $md5File : array();
    
    if (isset($_REQUEST["md5"]) && array_search($_REQUEST["md5"], $md5File ) !== FALSE ) {
        die('{"jsonrpc" : "2.0", "result" : null, "id" : "id", "exist": 1}');
    }
    
    $filePath = $targetDir . DIRECTORY_SEPARATOR . $fileName;
    $uploadPath = $uploadDir . DIRECTORY_SEPARATOR . $fileName;
    
    // Chunking might be enabled
    $chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["chunk"]) : 0;
    $chunks = isset($_REQUEST["chunks"]) ? intval($_REQUEST["chunks"]) : 1;
    
    
    // Remove old temp files
    if ($cleanupTargetDir) {
        if (!is_dir($targetDir) || !$dir = opendir($targetDir)) {
            die('{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}');
        }
    
        while (($file = readdir($dir)) !== false) {
            $tmpfilePath = $targetDir . DIRECTORY_SEPARATOR . $file;
    
            // If temp file is current file proceed to the next
            if ($tmpfilePath == "{$filePath}_{$chunk}.part" || $tmpfilePath == "{$filePath}_{$chunk}.parttmp") {
                continue;
            }
    
            // Remove temp file if it is older than the max age and is not the current file
            if (preg_match('/\.(part|parttmp)$/', $file) && (@filemtime($tmpfilePath) < time() - $maxFileAge)) {
                @unlink($tmpfilePath);
            }
        }
        closedir($dir);
    }
    
    
    // Open temp file
    if (!$out = @fopen("{$filePath}_{$chunk}.parttmp", "wb")) {
        die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
    }
    
    if (!empty($_FILES)) {
        if ($_FILES["file"]["error"] || !is_uploaded_file($_FILES["file"]["tmp_name"])) {
            die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}');
        }
    
        // Read binary input stream and append it to temp file
        if (!$in = @fopen($_FILES["file"]["tmp_name"], "rb")) {
            die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
        }
    } else {
        if (!$in = @fopen("php://input", "rb")) {
            die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
        }
    }
    
    while ($buff = fread($in, 4096)) {
        fwrite($out, $buff);
    }
    
    @fclose($out);
    @fclose($in);
    
    rename("{$filePath}_{$chunk}.parttmp", "{$filePath}_{$chunk}.part");
    
    $index = 0;
    $done = true;
    for( $index = 0; $index < $chunks; $index++ ) {
        if ( !file_exists("{$filePath}_{$index}.part") ) {
            $done = false;
            break;
        }
    }
    if ( $done ) {
        if (!$out = @fopen($uploadPath, "wb")) {
            die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
        }
    
        if ( flock($out, LOCK_EX) ) {
            for( $index = 0; $index < $chunks; $index++ ) {
                if (!$in = @fopen("{$filePath}_{$index}.part", "rb")) {
                    break;
                }
    
                while ($buff = fread($in, 4096)) {
                    fwrite($out, $buff);
                }
    
                @fclose($in);
                @unlink("{$filePath}_{$index}.part");
            }
    
            flock($out, LOCK_UN);
        }
        @fclose($out);
    }
    
    // Return Success JSON-RPC response
    die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}');
    
        立即下载 ( 文件大?。?em>0.13 M)

      浏览器兼容性

      1. IE 8
      2. IE 9
      3. Mozilla Firefox
      4. Google Chrome
      5. Oper
      6. Safari

      技术讨论区

      1. 零点零一28

        零点零一

        没有积分了

        2017-05-30 09:10:41| 回复

      2. 呵呵27

        呵呵 @爱我_不要停

        看不懂,可以讲解一下吗

        2017-05-22 11:32:27| 回复

      3. 游思宇影26

        游思宇影

        SCRIPT257: 由于出现错误 80020101 而导致此项操作无法完成。

        2017-03-04 11:43:27| 回复

      4. 樂在ㄣ娸狆25

        樂在ㄣ娸狆

        上传成功后还可以添加图片上传,那限制上传数量就没意义了

        2016-12-05 13:50:17| 回复

      5. 千岛氵胡白勺魚24

        千岛氵胡白勺魚

        怎么用呢 呵呵

        2016-10-30 22:57:52| 回复

      6. 爱我_不要停23

        爱我_不要停

        如何获取预览时的图片路径呢???

        2016-10-17 19:50:29| 回复

      7. 加菲★牛肉卷22

        加菲★牛肉卷

        用java后台没办法暂停 怎么回事????

        2016-09-23 13:41:08| 回复

      8. 土豆和稀泥21

        土豆和稀泥

        这玩意success以后data参数数组里面没有图片名称....

        2016-09-11 23:56:10| 回复

      9. 云彩20

        云彩

        ie9 都不兼容

        2016-08-31 17:12:26| 回复

      10. A.Laughing19

        A.Laughing

        不兼容I9以下

        2016-08-06 10:10:01| 回复

      11. 更多讨论
      12. 请先登录

          发 布

      键盘快捷键: 上一个 下一个

    • 市人大常委会召开党组会议传达学习全国两会精神张轩主持并讲话 2019-03-23
    • NBL今日召开推广会 优胜队伍晋级CBA之门或将重启 2019-03-23
    • [微笑]原因很简单:房产的升值是由关联资源的增加形成的,跟房屋的产权人没有任何关系,肯定就不能让其从中获利! 2019-03-21