[英]PHP - move_uploaded_file not working to copy file in same folder
重寫照片文件時遇到麻煩。 我需要將文件名重寫為隨機字符串。 文件上傳正常-我似乎無法讓它復制文件並將文件名重寫為隨機字符串。 該文件將保留在目錄中。
該功能運行正常,我可以重寫數據庫中的文件名,但不會重寫文件夾中的實際文件。 文件夾權限為rwxr-xr-x(755)。
有什么想法嗎?
function AfterUpdate(){
$file = $this->file_attachment;
$path_parts = pathinfo($file);
$newFilename = $path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension'];
$file_src = $_SERVER['DOCUMENT_ROOT'] . $file;
$newfile_src = $_SERVER['DOCUMENT_ROOT'] . $newFilename;
if (move_uploaded_file($file_src, $newfile_src)){
$this->file_attachment = $newFilename;
}
}
$newFilename
包含一個路徑位置,我通過查看$path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension'];
猜測$path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension'];
$path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension'];
。
$newFilename
應該只是帶有擴展名的新文件名。 move_uploaded_file
只會將文件從一個文件夾移動到另一個或相同的文件夾(已存在)。 但是不會為您創建文件夾。
簡單修復。 更換move_uploaded_file
與rename
。 該文件將不會被移動,只是被重命名。
$file = $this->file_attachment;
$path_parts = pathinfo($file);
$newFilename = $path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension'];
$file_src = $_SERVER['DOCUMENT_ROOT'] . "/" . $file;
$newfile_src = $_SERVER['DOCUMENT_ROOT'] . "/" . $newFilename;
if (rename($file_src, $newfile_src)){
$this->file_attachment = $newFilename;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.