700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php结合web uploader插件实现分片上传文件

php结合web uploader插件实现分片上传文件

时间:2024-06-22 16:45:47

相关推荐

php结合web uploader插件实现分片上传文件

php教程|php手册

php,webuploader,插件,上传,

php教程-php手册

php结合web uploader插件实现分片上传文件,

yii2 商城源码,vscode平板可以用吗,ubuntu安装sass,帆软需要tomcat,机械爬虫偏左,php工作年龄,黄冈茶叶seo推广怎么做lzw

最近研究了下大文件上传的方法,找到了webuploader js 插件进行大文件上传,大家也可以参考这篇文章进行学习:《Web Uploader文件上传插件使用详解》

phpsqlite源码,西安mac装ubuntu,爬虫类案件,php center,seo资源推荐lzw

使用

基金查询源码,ubuntu命令修改网卡,tomcat7富文本不显示,爬虫脑的秘密,PHP开发实例教程电子版,启东seo优化lzw

使用webuploader分成简单直选要引入

HTML部分

选择文件

初始化Web Uploader

jQuery(function() { $list = $(#thelist),$btn = $(#ctlBtn),state = pending,uploader; uploader = WebUploader.create({// 不压缩imageresize: false,// swf文件路径swf: uploader.swf,// 文件接收服务端。server: upload.php,// 选择文件的按钮。可选。// 内部根据当前运行是创建,可能是input元素,也可能是flash.pick: #picker,chunked: true,chunkSize:2*1024*1024,auto: true,accept: { title: Images, extensions: gif,jpg,jpeg,bmp,png, mimeTypes: image/*} });

upload.php处理

以下是根据别人的例子自己拿来改的php 后台代码

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"); 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 = uploads.DIRECTORY_SEPARATOR.file_material_tmp; $uploadDir = uploads.DIRECTORY_SEPARATOR.file_material; $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_"); } $oldName = $fileName; $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 fileif (!$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 ) {$pathInfo = pathinfo($fileName);$hashStr = substr(md5($pathInfo[asename]),8,16);$hashName = time() . $hashStr . . .$pathInfo[extension];$uploadPath = $uploadDir . DIRECTORY_SEPARATOR .$hashName;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 true, oldName=>$oldName, filePaht=>$uploadPath, fileSize=>$data[size], fileSuffixes=>$pathInfo[extension], file_id=>$data[id], ];die(json_encode($response)); } // Return Success JSON-RPC response die({"jsonrpc" : "2.0", "result" : null, "id" : "id"});

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。