我正在处理PHP中的多个文件上传,我还使用上传表单PHP文件中的以下HTML命令修复了10MB的上传限制:
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<input id="infile" type="file" name="infile[]" multiple="true" />
在负责上传功能的PHP文件中,我最初期望如果我尝试上传大小超过10MB的文件,那么函数调用语句
move_uploaded_file($_FILES['infile']['tmp_name'][$i], $dir . $fPath);
将失败,我可以显示“大小小于10MB的错误上传文件”消息。但它没有发生。它试图上传,它没有按预期显示任何错误消息。
因此,我尝试使用if语句将代码中的文件大小限制为:
if ($_FILES["infile"]["size"][$i]<10000000)
{
move_uploaded_file($_FILES['infile']['tmp_name'][$i], $dir . $fPath);
}
else
echo "error";
但它仍然没有像预期的那样回应错误。任何人都可以指出我在这里做的错误吗?
答案 0 :(得分:2)
您可以将以下行添加到处理表单的目标脚本中:
ini_set('upload_max_filesize', '10M');
或者,如果您可以访问您的php.ini,只需更改以下内容:
upload_max_filesize = 10M
答案 1 :(得分:0)
试试这个
<?php
if(isset($_POST["file_uploaded"])){
$f_id= $_GET["id"];
$dir_name="dir_hal_".$f_id;
$u=0;
if(!is_dir($dir_name))
{
mkdir($dir_name);
}
$dir=$dir_name."/";
$file_realname = $_FILES['infile']['name'];
$c=count($_FILES['infile']['name']);
for($i = 0;$i<$c;$i++)
{
$ext = substr(strrchr($_FILES['infile']['name'][$i], "."), 1);
$fname = substr($_FILES['infile']['name'][$i],0,strpos($_FILES['infile']['name'][$i], "."));
$fPath = $fname."_(".substr(md5(rand() * time()),0,4).")".".$ext";
if($_FILES["infile"]["size"][$i]>10000000)
{
echo 'File uploaded exceeds maximum upload size.';
}
else{
if(move_uploaded_file($_FILES['infile']['tmp_name'][$i], $dir . $fPath))
{
$u=$u+1;
echo "Upload is successful\n";
}
else
{
echo "error\n";
}
}
}
if($u==$c)
{
echo "count is correct";
}
}
?>