我有两个问题,第一个问题:
我正在尝试上传特定文件夹中的所有文件,并使用PHP将其移动到用户的私人文件夹中。我目前的代码:
$count = 0;
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach ($_FILES['files']['name'] as $i => $fname) {
if (strlen($_FILES['files']['name'][$i]) > 1) {
if (move_uploaded_file($_FILES['files']['tmp_name'][$i],
'users/' . $currentUser . '/uploads/' . $fname)) {
$count++;
}
}
}
}
和
<div id="divUpload">
<form method="post" enctype="multipart/form-data">
<input type="file" name="files[]" id="files"
mozdirectory="" directory="" webkitdirectory="">
<input class="button" type="submit" value="Upload" />
</form>
</div>
稍后会使用$ count来检查是否上传了任何文件。
此代码在我的localhost系统上完美运行,但它似乎不能在某些文件夹上的ubuntu服务器上运行。例如:内部有20个图像的文件夹工作得很好,而只有1个图像的文件夹可能已经给我一个错误。
我已更新我的php.ini文件并进行了以下更改:
upload_max_filesize = 199M
max_file_uploads = 100
我将是唯一使用此网站的人,只能从我自己的网络连接到它,所以不要担心安全性。我的www-data用户也可以完全访问我服务器上的文件夹,所以我认为这也不是一个权限。
当我尝试使用php.ini-development调试我的代码时,它会给我错误
Warning: Invalid argument supplied for foreach() in /var/www/upload.php on line 14
当我尝试var_dump()它时,它返回NULL,好像根本没有上传任何文件......我在某个地方犯了错误吗?我很困惑,因为它有时没有任何问题......
第二个问题:
我在某处读到php.ini中的upload_max_filesize受memory_limit的限制。这是真的?
我正在制作的这个项目是一个家庭NAS,我设法让我的代码顺利运行,总内存限制为200M。这是否意味着我将无法上传大于200MB的文件???为什么这个在我的localhost上工作呢? (它使用相同的200M memory_limit约束)
谢谢,S
答案 0 :(得分:2)
忘了增加我的
post_max_size
在php.ini中也是如此。这解决了这个问题!很奇怪PHP虽然没有给出明确的信息。
S上。