我有一個很小的運行代碼,但缺少一些零碎的東西。我希望能夠上傳兩個文件(不少於,不多),並將它們保存在不同的文件夾中。這些文件是「exe」。上傳兩個且只有兩個文件並保存在不同的文件夾中php
文件:的fileA,FILEB
爲的fileA文件路徑:對於FILEB /home/abc/Downloads/createA/fileA
文件路徑:/home/abc/Downloads/createB/fileB
的問題是,我有如下形式,它允許多個上傳,但沒有按」 t加載第二個文件。我看到的,是越來越上傳並保存在/home/abc/Downloads/createA/fileA
代碼的第一個文件:
<?php
if(isset($_FILES['files'])){
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){
//added from single upload
if($file_size > 3000000){
$errors[]='File size must be less than 3 MB';
}
if(empty($errors)==true){
echo "Please make sure uploaded file name contains 'fileA' in the name";
echo '<br/>';
if(preg_match("/fileA/i", $file_name)){
$upload_dir = "/home/abc/Downloads/createA/";
$upload_dir_1 = "$upload_dir".$file_name;
mkdir($upload_dir, 0777, true);
move_uploaded_file($file_tmp,$upload_dir_1);
// print_r($upload_dir);
echo '<br/>';
echo "Success ";
echo "Stored in: " .$upload_dir;
if (preg_match("/fileB/i", $file_name)){
$upload_dir = "/home/abc/Downloads/createB/";
$upload_dir_1 = "$upload_dir".$file_name;
mkdir($upload_dir, 0777, true);
move_uploaded_file($file_tmp, $upload_dir_1);
echo '<br/>';
echo "Loaded fileB";
}
else{
echo "I am not uploading fileB";
}
}
}
else{
echo "I am not loading fileA";
print_r($errors);
}
}
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" /><br />
<input type="file" name="files[]" /><br />
<input type="submit"/>
</form>
表單不會給你任何路徑信息。您決定服務器端代碼中的路徑。問題解決了。 – developerwjk
我知道表單不會給出任何路徑信息。這裏的表單允許用戶加載單個/多個文件。我將表單和服務器端代碼嵌入到同一個文件中。我覺得,是因爲邏輯的緣故,第二個文件沒有上傳。 –
這不是你在問題中所說的。你說他們正在保存同樣的道路,現在你說第二個就是迷路了。更清楚。現在,我知道你不會想聽到這個,但是如果你真的縮進你的代碼到它可讀的地方,它可能會更容易找到錯誤。就目前而言,它太多的工作來分辨循環中的內容以及什麼不是,等等。 – developerwjk