Maison > Article > développement back-end > php 视频、音频和图片文件上传,该如何解决
php 视频、音频和图片文件上传
哪位大师晒个php、音频和图片文件上传的实例。。。。感谢!!!!!!!!!!!!!!!!!!!!!!!!!!
------解决方案--------------------
http://www.w3school.com.cn/php/php_file_upload.asp
有完整的代码跟讲解
------解决方案--------------------
普通HTML上传视频恐怕有点难度吧。一般视频文件比较大,都是几百MB吧。而且在外网的话网速也不怎么稳定。
上传几百MB的文件可能要花很长时间吧,服务器如果给每个用户这么长的连接时间那其它的用户都无法访问了。
QQ邮箱中有一个大附件上传功能,他有断点续传功能。像视频这类的大文件上传最好借助于断点续传功能来实现。
图片上传网上的示例比较多。比如swfupload等。
------解决方案--------------------
网上有一个PHP断点续传的示例。
<?phpob_start ();$uploadDir = dirname(__FILE__).'/upload'; //自动创建目录if(!file_exists($uploadDir)){ mkdir($uploadDir);} //如果PHP页面为UTF-8编码,请使用urldecode解码文件名称//$fileName = urldecode($_FILES['postedFile']['name']);//如果PHP页面为GB2312编码,则可直接读取文件名称$fileName = basename($_FILES['FileName']['name']);//qq.exe$tmpFilePath = $uploadDir . "/" . $fileName . ".tmp";$tmpName = $_FILES['FileName']['tmp_name'];$FileSize = $_POST['FileSize'];$md5 = $_POST['md5'];$complete = $_POST['complete'];$RangePos = $_POST['RangePos']; //移动文件move_uploaded_file($tmpName,$tmpFilePath); //upload/qq.exe$savePath = $uploadDir . "/" . $fileName; //文件不存在,创建if(!file_exists($savePath)){ $hfile = fopen($savePath,"wb"); ftruncate($hfile,$FileSize); fclose($hfile);} //读取文件块数据$hfileTemp = fopen($tmpFilePath,"rb");$tempData = fread($hfileTemp,filesize($tmpFilePath));fclose($hfileTemp); //写入数据$hfile = fopen($savePath,"r+b");//定位到续传位置fseek($hfile, $RangePos,SEEK_SET);fwrite($hfile,$tempData);fclose($hfile); //删除临时文件unlink($tmpFilePath); //输出文件路径//$_SERVER['HTTP_HOST'] localhost:81//$_SERVER['REQUEST_URI'] /FCKEditor2.4.6.1/php/test.php //$reqPath = str_replace("upload.php","",$_SERVER['REQUEST_URI']);echo "upload/" . $fileName;header('Content-Length: ' . ob_get_length()); ?><br><font color="#e78608">------解决方案--------------------</font><br>