当前位置: 首页 > 知识库问答 >
问题:

您好,我想使用php_move_upload_文件将图像从临时文件夹移动到永久文件夹

许嘉福
2023-03-14

hi这是一个上传临时位置内的图像并将位置保存到会话以供使用的功能

    function uploadPhoto()
{
    $rawImage = $_FILES['advPhoto'];
    $uploader = new ImageUploader($rawImage);
    $uploader->moveToProjectTempFolder();

    //1 save the current image in sassion (save the attachment class inside seesion)
    $uploader->saveInSession();
    // $temperrary = $uploader->CurrentImgTemperraryLocation();

    //2 send reponse the current image location
    AjaxHelper::sendAjaxResponse("images/temp/" . $uploader->CurrentImgTemperraryLocation());
    //create image tag and set the image source the "temp uploaded image path"
    // done
    //when the mail form is submitted
    //loop through session array 
    //move the user uploaded/approved images to permanent folder
    //save image information inside DB

}

这里是导致问题的函数我想将图片从临时文件夹移动到永久位置,但php_move_uploaded_file()在我的情况下不起作用我真的不知道什么是问题请帮助我,如果你知道什么是问题thnks.

  function saveAdv()
{
    $advTitle = $_POST['advTitle'];
    $advContent = $_POST['advContent'];
    if (!empty($advTitle) && !empty($advContent)) {

        if (DataValidation::isOnlyPersianOrEnglish($advTitle) && 
DataValidation::isOnlyPersianOrEnglish($advContent)) {
            DBconnection::insertRow('ADVERTISEMENT', ['title', 'Advertisement', 'advDate'], 
[$advTitle, $advContent, date('y/m/d h:i:s')]);
            // AjaxHelper::sendAjaxResponse("success");

            $projectTemp = $_SESSION['ADVERTISEMENT']['Img'];
            move_uploaded_file(
                $projectTemp,
                DOC_ROOT . "/images/advertisementImg/"
            );
            AjaxHelper::sendAjaxResponse($projectTemp);
        }
    } else {
        AjaxHelper::sendErrorMessage(AjaxHelper::EMPTY_EMAIL_OR_PASSWORD);
    }
}

我没有收到任何错误,我已经调试了很多次,但没有警告,没有任何错误,文件夹的位置完全正确,也没有权限问题。

move_uploaded_file()在我将图像从系统临时位置移动到项目临时位置的第一步中工作得很好,但在我要将图像从项目临时位置移动到永久位置时不起作用。

共有1个答案

刘建中
2023-03-14

move_uploaded_file()仅用于移动刚刚在POST请求中上传并存储在系统临时位置的文件。如留档(https://php.net/manual/en/function.move-uploaded-file.php)所述,它首先检查文件是否是有效的上传文件,这意味着它是通过PHP的HTTP POST上传机制上传的(这是文档的直接引用)。如果这个定义不成立,它就失败了。

因此,如果您试图使用move_uploaded_file()从当前请求中未直接上载到该位置的其他位置(而不是系统临时位置)复制文件,则该操作将不起作用。使用PHP的通用文件操作功能,使用rename()函数移动其他文件(请参阅https://www.php.net/manual/en/function.rename.php 详细信息)。

 类似资料:
  • 问题内容: 如何使用Java将所有文件从一个文件夹移动到另一文件夹?我正在使用此代码: 但它仅适用于一个特定文件。 谢谢!!! 问题答案: 如果对象指向文件夹,则可以遍历其内容

  • 将文件从documentdirectory移动到子目录的简单脚本不起作用 移动失败,错误为:操作无法完成。(可可错误4。) 我用Xcode的模拟器来尝试它。下面的函数返回true,因为文件存在于DocumentDirectory中。此外,destinationfolder存在,destinationfolder为空。 /Users/RWollenSchlaeger/Library/Develope

  • 我试图寻找'jpg,jpeg,png'文件在我的USB驱动器,并试图将它们一个接一个地移动到一个新的文件夹。请让我知道这里有什么问题。 错误:- 目标目录E\Mac\MovedPics不存在语音指令2。zip:E:\Mac目的地目录E\Mac\MovedPics不存在usbpicsdata。txt:E:\Mac REGEXP匹配:-E:\Mac\4。jpg回溯(最近一次调用last):文件“C:\

  • 我有一个包含10个图像的文件夹,我希望根据其当前文件名将其移动到一个新文件夹中。我已经成功地将文件夹中的每个图像移动到了一个新文件夹中,到目前为止,我已经成功地将每个图像文件名移动到了它自己的文件夹中,但我还没有弄清楚如何将具有相同文件名的所有图像移动到一个文件夹中,然后将另一个移动到另一个文件夹中。例如,下面我想相应地移动图像。 1600_01.jpg--- 到目前为止,这是我的代码,通过根据图

  • 但我不断得到以下错误: 请让我知道可以为此做些什么。

  • 我使用以下代码移动图像一个文件夹到另一个文件夹,但它不工作。 如下 但还是不行谢谢