这是我第一次来这里,我想知道你是否能理解我的问题,因为我不是来自英语国家。
我想编写一些代码来上传文件,如果您了解PHP或JS,我的代码很容易理解。这是我的代码。
<form action='data.php' method='post' enctype='multipart/form-data'>
<input type='file' name='file' />
<input type='submit' />
</form>
$user_uid = rand(0, 50000);
$file_pos = strpos($_FILES['file']['type'], '/');
$file_name = $user_uid . '.' . substr($_FILES['file']['type'], $file_pos + 1);
$savePath = dirname(__FILE__) . '\\' . $file_name;
copy($_FILES['file']['tmp_name'], $savePath);
如上所述,我想获取文件的tmp_name
,但如果上传了zip文件或7z文件则无效。但它似乎对jpg或其他人很好,为什么?
我尝试输出7z的$ _FILES ['file'],例如:
对象{名称:“2.zip”,类型:“”,tmp_name:“”,错误:1,大小:0}
我发现tmp_name是“”,如果7z也是如此,这是怎么回事?如果我想上传zip或7z,我应该如何更改我的代码?
@ 2017年9月13日
在php.ini中增加它并重新启动服务器
upload_max_filesize = 180M
max_file_uploads = 180
upload_max_filesize = 180M
答案 0 :(得分:2)
你可以在php.ini
中增加它upload_max_filesize = 180M
max_file_uploads = 180
upload_max_filesize = 180M
答案 1 :(得分:1)
阅读http://php.net/manual/en/features.file-upload.errors.php显示error = 1
为
UPLOAD_ERR_INI_SIZE 价值:1;上传的文件超出了php.ini中的upload_max_filesize指令。
因此,增加upload_max_filesize
限制可以解决您的问题(这将有助于Changing upload_max_filesize on PHP)
答案 2 :(得分:0)
试试这个方法:
if(isset($_FILES["file"])){
$allowed = array('rar','zip' ,'7z', 'RAR', 'ZIP', '7Z');
$filename = $_FILES['file']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if(!in_array($ext,$allowed) ) {
echo '0';
} else {
// If no errors, upload the file
$target = "../fisiere_pub/"; //choose your upload folder
move_uploaded_file($_FILES["file"]["tmp_name"], $target. $_FILES["file"]["name"]);
$file = $target . $_FILES["file"]["name"];
}
} else $file = "Upload error!";
echo $file;
如果此代码不起作用,请尝试使用小文件(最多5mb)或更改php.ini中上传的最大文件大小,如其他用户所述:)
答案 3 :(得分:-1)