[英]PHP upload files to multiple directories
我有下面的代碼試圖將多個文件上傳到多個目錄(年和月)。
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" id="files" multiple />
<br/>
<input type="submit" name="submit" id="button" value="Backup!" />
</form>
<?php
if(isset($_FILES['files'])){
$year= Date('Y');
$month = Date('m');
$tempFile = $_FILES['files']['tmp_name'];
for ($a=2017; $a <= $year; $a++) {
echo "first<br>";
if($a == 2017){
for ($m=11; $m <= 12; $m++) {
$targetDir = "../".$a."/".$m."/";
echo "second<br>";
foreach ($tempFile as $key => $tmp_name) {
echo "third<br>";
$fileName = $_FILES['files']['name'][$key];
$fileTemp = $_FILES['files']['tmp_name'][$key];
$targetFile = $targetDir.$fileName;
echo $targetFile."<br>";
if(!file_exists($targetFile)){
if(move_uploaded_file($fileTemp, $targetFile)){
echo "uploaded!<br>";
}else {
echo "error<br>";
}
}else {
echo "file already exists in ".$targetDir."<br>";
}
}
}
}
}
}
?>
2017 只有兩個目錄(11 和 12)。 上傳在第一個目錄 (11) 中正確完成,但是當它嘗試上傳到第二個目錄 (12) 時出現echo error
。
代碼正在執行的循環順序是:
first
second
third
../2017/11/file-to-change.php
uploaded!
second
third
../2017/12/file-to-change.php
error
first
first
我可以將多個文件上傳到它獲得的第一個目錄,但不能將任何內容上傳到第二個。 我嘗試使用另一個for()
但它給我的結果與foreach()
相同。
如果我錯了,請糾正我,但我認為在第二次循環中,文件在上傳到第一個目錄后不再可用。
所以我把它上傳到第一個目錄,然后我把它復制到其他目錄。
foreach ($tempFile as $key => $tmp_name) {
$fileName = $_FILES['files']['name'][$key];
$fileTemp = $_FILES['files']['tmp_name'][$key];
$targetFile = $targetDir.$fileName;
if(!file_exists($targetFile)){
if(move_uploaded_file($fileTemp, $targetFile)){
echo "Uploaded in: ".json_encode($targetDir, JSON_UNESCAPED_SLASHES)."<br>";
}else {
echo "Error uploading in: ".json_encode($targetDir, JSON_UNESCAPED_SLASHES)."<br>";
}
}else {
echo "File already exists in ".json_encode($targetDir, JSON_UNESCAPED_SLASHES)."<br>";
}
}
for ($a=2017; $a <= $year; $a++) {
if($a == 2017){
for ($m = 11; $m <= 12; $m++) {
$targetDirToCopy = "../".$a."/".$m."/".$fileName;
if(copy($targetFile, $targetDirToCopy)){
echo "Uploaded in: ".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
}else {
echo "File already exists in ".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
}
}
}
if($a == 2018){
for ($m = 1; $m <= 12; $m++) {
$targetDirToCopy = "../".$a."/".$m."/".$fileName;
if(copy($targetFile, $targetDirToCopy)){
echo "Uploaded in:".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
}else {
echo "File already exists in ".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
}
}
}
if($a == $ano){
for ($m = 1; $m < ($mes-1); $m++) {
$targetDirToCopy = "../".$a."/".$m."/".$fileName;
if(copy($targetFile, $targetDirToCopy)){
echo "Uploaded in:".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
}else {
echo "File already exists in ".json_encode($targetDirToCopy, JSON_UNESCAPED_SLASHES)."<br>";
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.