【问题标题】:Files not being uploaded in dynamically created folders/subfolders未在动态创建的文件夹/子文件夹中上传文件
【发布时间】:2013-11-18 00:42:16
【问题描述】:

我需要帮助来解决这个问题文件没有上传到动态创建的文件夹/子文件夹中!

使用input type text 动态创建subfolder,当我上传的文件移至uploads folders 但未移至subfolder 使用input type text? 创建时

但动态创建功能工作正常,并显示在文本框中输入到上传文件夹的文件夹

这是我的代码

//creating dynamically subfolders 
$folder = $_POST['folder'];
foreach( $folder as $key => $value){
$dirPath = 'uploads/'.$value;
$result = mkdir($dirPath);
}

if ($result == '1') {

//file move on function
$target_path = 'uploads/'.$results;
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
" has been uploaded";

} else{
echo "There was an error uploading the file, please try again!";
}
} else {
echo $dirPath . " has NOT been created";
}
}

<form method="post" enctype="multipart/form-data">
<input name="uploadedfile" type="file" /><br />
<input type="text"  id="folder" name="folder"><br />
<input type="submit" name="test" value="Upload File" />
</form>

我的问题已经解决了,现在我已经完成了我的脚本

//creating a folder 
$folder = $_POST['folder'];
$dirPath = 'uploads/'.$folder;
$result = mkdir($dirPath);

if ($result == '1') {

//file move on        
$target_path = $dirPath .'/' . basename( $_FILES['uploadedfile']['name']); 

  if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
     echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
" has been uploaded";

  } else{
     echo "There was an error uploading the file, please try again!";
  }

 } else {
   echo $dirPath . " has NOT been created";
 }
}

【问题讨论】:

    标签: php forms mkdir uploading


    【解决方案1】:

    试试这个,

    替换

     $target_path = 'uploads/'.$results; 
    

    进入

    $target_path = $dirPath.'/';
    

    否则,

    $target_path = $dirPath .'/'. basename( $_FILES['uploadedfile']['name']); 
    
    if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
        echo "The file ".  basename( $_FILES['uploadedfile']['name']). " has been uploaded";
    }
    

    【讨论】:

    • 是这样的吗$target_path = /$dirPath/. basename( $_FILES['uploadedfile']['name']); bcz 当我 echo $target_path 它向我显示由文本框 uploads/test1236203_10153283876195472_1932123741_n.jpg 创建的文件夹名称
    • 是的,谢谢我解决了它,并用解决方案更新了我的问题,它可能适用于其他人:)
    • chinnu r 你能解决这个问题吗stackoverflow.com/questions/19822999/… 非常感谢?
    • 在那里添加了解决方案。
    【解决方案2】:

    $results 在哪里定义?你在这里使用它:

    $target_path = 'uploads/'.$results;

    为什么?

    另外,$result 是 mkdir() 的真或假返回,所以你也不能使用那个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2013-01-09
      • 2020-07-18
      相关资源
      最近更新 更多