我有点编码,但我错过了这一部分。以下PHP仅允许上传gif,jpeg,jpg,doc和pdf文件。我的最大文件大小不超过5兆。目前编码工作正如我所希望的那样,WITH和exception。我希望用户能够PICK一次说出5,6或7个文件,然后按一下上传按钮。我认为我能做的只是复制输入类型='文件'名称=' file_upload'> 5次..这有效,但是当我尝试按下上传按钮时,它会等待几秒钟,然后弹出我的错误代码'上传时出现错误。'
如果有人可以提供帮助,我将不胜感激。我确信编码可以更清晰,但正如你所看到的那样,我对php很新(很多)。
先谢谢 贝
HTML编码:
<form method='post' enctype='multipart/form-data' action='../edocs.php'>
<input type='file' name='file_upload'><br>
<input type='submit' value="Upload" ><br><input type="reset" >
<?php
if($_FILES['file_upload']['error'] > 0){
die('An error ocurred when uploading.');
}
if($_FILES['file_upload']['type']!= 'image/gif')
if($_FILES['file_upload']['type']!= 'image/jpeg')
if($_FILES['file_upload']['type']!= 'image/jpg')
if($_FILES['file_upload']['type']!= 'application/msword')
if($_FILES['file_upload']['type']!= 'application/pdf'){
die('Unsupported filetype uploaded. You need to change your file type
答案 0 :(得分:4)
你可以尝试这样,它会起作用。
<form method="post" enctype="multipart/form-data">
<input type="file" name="my_file[]" multiple>
<input type="submit" value="Upload">
</form>
<?php
if (isset($_FILES['my_file'])) {
$myFile = $_FILES['my_file'];
$fileCount = count($myFile["name"]);
for ($i = 0; $i < $fileCount; $i++) {
?>
<p>File #<?= $i+1 ?>:</p>
<p>
Name: <?= $myFile["name"][$i] ?><br>
Temporary file: <?= $myFile["tmp_name"][$i] ?><br>
Type: <?= $myFile["type"][$i] ?><br>
Size: <?= $myFile["size"][$i] ?><br>
Error: <?= $myFile["error"][$i] ?><br>
</p>
<?php
}
}
?>
答案 1 :(得分:0)
首先改变这个
文件的 multiple
属性和文件的名称为数组。
<input type='file' name='file_upload[]' multiple><br>
^ ^// this will allow the user to select multiple files.
然后$_FILES
使用foreach
循环
foreach ($_FILES['file']['name'] as $filename)
{
$temp="path to upload the file";
$tmp=$_FILES['file']['tmp_name'][$count];
$count=$count + 1;
$temp=$temp.basename($filename);
move_uploaded_file($tmp,$temp);
$temp='';
$tmp='';
}
参考this