简体   繁体   English

如何使用php将文件移动到另一个文件夹?

[英]How can I move a file to another folder using php?

I have an upload form where users can upload images that are currently being uploaded to a folder I made called 'temp' and their locations are saved in an array called $_SESSION['uploaded_photos']. 我有一个上传表单,用户可以将当前正在上传的图像上传到我创建的名为“ temp”的文件夹中,并将其位置保存在名为$ _SESSION ['uploaded_photos']的数组中。 Once the user pushes the 'Next Page' button, I want it to move the files to a new folder that is dynamically created right before that. 一旦用户按下“下一页”按钮,我希望它将文件移动到在此之前动态创建的新文件夹中。

if(isset($_POST['next_page'])) { 
  if (!is_dir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id'])) {
    mkdir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id']);
  }

  foreach($_SESSION['uploaded_photos'] as $key => $value) { 
    $target_path = '../images/uploads/listers/'.$_SESSION['loggedin_lister_id'].'/';
    $target_path = $target_path . basename($value); 

    if(move_uploaded_file($value, $target_path)) {
      echo "The file ".  basename($value). " has been uploaded<br />";
    } else{
      echo "There was an error uploading the file, please try again!";
    }

  } //end foreach

} //end if isset next_page

An example for a $value that is being used is: 一个使用$ value的示例是:

../images/uploads/temp/IMG_0002.jpg ../images/uploads/temp/IMG_0002.jpg

And an example of a $target_path that is being used is: 一个正在使用的$ target_path的示例是:

../images/uploads/listers/186/IMG_0002.jpg ../images/uploads/listers/186/IMG_0002.jpg

I can see the file sitting in the temp folder, both of those paths look good to me and I checked to make sure that the mkdir function actually created the folder which it did well. 我可以看到文件位于temp文件夹中,这两个路径对我来说看起来都很不错,并且我检查了mkdir函数是否确实创建了性能良好的文件夹。

How can I move a file to another folder using php? 如何使用php将文件移动到另一个文件夹?

As I read your scenario, it looks like you've handled the upload and moved the files to your 'temp' folder, and now you want to move the file when they perfom a new action (clicking on the Next button). 在我阅读您的方案时,您似乎已经处理了上载并将文件移到“ temp”文件夹中,现在您想在执行新操作时移动文件(单击“下一步”按钮)。

As far as PHP is concerned - the files in your 'temp' are not uploaded files anymore, so you can no longer use move_uploaded_file. 就PHP而言-“临时”中的文件不再是上传文件,因此您不能再使用move_uploaded_file。

All you need to do is use rename : 您需要做的就是使用rename

if(isset($_POST['next_page'])) { 
  if (!is_dir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id'])) {
    mkdir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id']);
  }

  foreach($_SESSION['uploaded_photos'] as $key => $value) {
    $target_path = '../images/uploads/listers/'.$_SESSION['loggedin_lister_id'].'/';
    $target_path = $target_path . basename($value); 

    if(rename($value, $target_path)) {
      echo "The file ".  basename($value). " has been uploaded<br />";
    } else{
      echo "There was an error uploading the file, please try again!";
    }

  } //end foreach

} //end if isset next_page

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用PHP imap将电子邮件从一个文件夹移动到另一个文件夹 - How can I move an email message from one folder to another using PHP imap 如何使用 php 上传文件,然后使用其名称创建文件夹并将其移动到该文件夹中? - How can upload a file using php, then use it's name to create a folder and move it within that folder? 如何将文件移动到PHP中的另一个文件夹 - How to move files to another folder in php 如何使用php将内容从文件夹移动到另一个文件夹 - How to move content from folder to another with php 如何使用PHP自动将指定数量的文件从一个文件夹移动到另一个文件夹? (用于WordPress插件) - How do I move a specified number of files automatically from one folder to another using PHP? (for use in WordPress plugin) 如何上传多个文件并移入php中的文件夹? - How to upload multiple file and move into folder in php? 不使用PHP复制功能,将文件从一个文件夹移动到另一个文件夹 - Without using PHP copy function, move file from one folder to another 如何使用PHP在另一台PC上写入文件txt? - How can I write a file txt in another PC by using PHP? 我如何访问父文件夹php中的文件夹或文件 - how can i access a folder or file in parent folder php 如何将文件从一个位置移动到另一个位置? - How can I move a file from one location to another?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM