很多站长朋友们都不太清楚php无法批量上传,今天小编就来给大家整理php无法批量上传,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php上传为什么不能多文件上传? 2、 php函数move_uploaded_file批量上传问题 3、 php怎么实现批量上传图片?不是一张一张选择之后一起上传 就是打开文件夹全选直接全部上传。 4、 php上传文件最多只能上传多少个文件啊?为什么我上传20个文件在上传就不行了? 5、 php 批量大文件上传下载如何实现? php上传为什么不能多文件上传?html代码
<html>
<head>
<title></title>
</head>
<body>
<form enctype="multipart/form-data" action="do_upload.php" method="POST">
<!--表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form- data,才能完整的传递文件数据,进行下面的操作.-->
<fieldset>
<legend>图片上传</legend>
第一张图片<input name="userfile" type="file"><br>
第二张图片<input name="userfile" type="file"><br>
第三张图片<input name="userfile" type="file"><br>
第四张图片<input name="userfile" type="file"><br>
第五张图片<input name="userfile" type="file"><br>
<!--数组的形式传递数据-->
<input type="submit" value="Send File">
</fieldset>
</form>
</body>
</html>
2、do_upload.php页面,即处理多文件上传的页面:
<?php
//全局数组$_FILES
//$_FILES['userfile']['tmp_name']文件在web服务器中临时存储的位置
//$_FILES['userfile']['name']用户系统中的文件名称
//$_FILES['userfile']['size']文件的字节大小
//$_FILES['userfile']['type']文件的MIME类型,text/plain,image/gif
//$_FILES['userfile']['error']与文件上载相关的错误代码
?>
<?php
//用for循环来获取传递的数据,是一个三维数据
for ($i=0;$i<count($_FILES['userfile']['tmp_name']);$i++)
{
$upfile=$new_folder."/".$_FILES['userfile']['name'][$i];//此处可以根据自己的需要修改
if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$upfile)){
echo "第".($i+1)."张图片上传成功<br>";
}
else{
echo "第".($i+1)."张图片上传不了<br>";
}
}
?>
3、运行截图
php函数move_uploaded_file批量上传问题个人认为,不建议这样写上传代码
<?php
$Files = $_FILES['attachment'];
foreach ( $Files as $file ){//遍历取得的数组
if ( !empty( $file['name'] ) ) { //如果文件名不为空,也就是跳过没选择文件的上传
//这这里处理你是上传
move_uploaded_file( $file['tmp_name'], '你要保存的文件名称和路径');
}
}
php中,对数组的操作,用foreach循环最方便和合适,for循环显然没有那个方便
php怎么实现批量上传图片?不是一张一张选择之后一起上传 就是打开文件夹全选直接全部上传。获取路径下的所有图片文件名,写入数据库或是某个变量,在别的页面调用程序上传,再从别的页面读出来就行了。
以下是示例代码:
<?php
function upload($fileName,$filePath)
{
//判断该文件是否是用户根据POST方式提交到服务器的上传文件
foreach($_FILES[$fileName]['tmp_name'] as $k=>$v)
{
if($_FILES[$fileName]['name'][$k]!="")
{
$result=check($_FILES[$fileName]['size'][$k],$_FILES[$fileName]['type'][$k],$_FILES[$fileName]['name'][$k]);
if($result['error']==1)
{
echo $result['msg']."<br>";
echo "出错文件:".$result['name']."<br>";
}
else
{
$arrTT=explode(".",$_FILES[$fileName]['name'][$k]);
$extName=$arrTT[count($arrTT)-1];
$NewName=sha1(microtime()).".".$extName;
if(move_uploaded_file($v,$filePath.$NewName));
$arrWW[]=$NewName;
}
}
}
return $arrWW;
}
function check($size,$types,$name)
{
if($size>=5242880)
{
$result['msg']='文件过大!';
$result['error']=1;
$result['name']=$name;
}
$arrType=array('image/pjpeg','image/gif','image/x-png','audio/mp3','application/msword','application/vnd.ms_excel','application/octet-stream','application/vnd.ms-powerpoint');
if(!in_array($types,$arrType))
{
$result['msg']='文件类型不匹配!';
$result['error']=1;
$result['name']=$name;
}
return $result;
}
?>
php上传文件最多只能上传多少个文件啊?为什么我上传20个文件在上传就不行了?在php.ini里面有这么两行:
; Maximum allowed size for uploaded files
;允许上传文件的最大体积
upload_max_filesize = 2M
; Maximum number of files that can be uploaded via a single request
;一次请求最多能上传文件个数
max_file_uploads = 20
php 批量大文件上传下载如何实现?1.首先还是查看环境是否支持超大容量上传的支持,500M以上的文件通常为视频文件;
2.即然他要上传500M以上的文件,估计服务器性能必定非同凡想,所以暂可不考虑服务器硬件配置问题,但一定要考虑到网速问题,建议1000M以上出入速率,如少于这个数,你可以放弃这个方案了;
3.前面硬件都过关了,但程序也要加强了,一下上传500M是哪种语言都不能实现的,唯一解决方案,文件切割,如迅雷下载原理一样(采用续点上传),分成若干小块,然后全部上传完毕以后,再进行文件合成。
4.至于PHP的文件切割,切割后上传,以及文件合并,此类代码网上有许多,楼主可查询并选择适合你的代码,实现你的功能!
关于php无法批量上传的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php无法批量上传 php批量上传图片的详细内容...