PHP上传文件更改名称

PHP上传文件更改名称,php,Php,我得到了一个上传脚本,必须改变文件名的第一个上传。 这是我的密码: <?php $ds = DIRECTORY_SEPARATOR; $fileName = $_POST['articleSlug']; $storeFolder = '../uploads'; if (!empty($_FILES)) { $tempFile = $_FILES['file']['tmp_name']; $tar

我得到了一个上传脚本,必须改变文件名的第一个上传。 这是我的密码:

<?php
$ds          = DIRECTORY_SEPARATOR; 
$fileName    = $_POST['articleSlug'];
$storeFolder = '../uploads';  

if (!empty($_FILES)) {

    $tempFile = $_FILES['file']['tmp_name'];                      

    $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;  

    $targetFile =  $targetPath. $_FILES['file']['name']; 

    move_uploaded_file($tempFile,$targetFile);

}
?>

我必须使用
$fileName
变量来更改文件名,但当我更改$targetFile变量时,它将不再上载文件,因此我已将代码还原到正常工作的那一刻,您能否帮助我找到如何使用变量内容替换原始文件名

非常感谢

更换

$targetFile=$targetPath$_文件['file']['name']

$ext=end(分解(“.”,$_文件['file']['name'])

$targetFile=$targetPath。文件名为“”$分机


最可能的错误是,使用$fileName更改$targetFile时,您试图将该文件写入您没有足够权限的位置

您可能需要这样做:

 <?php

    $ds          = DIRECTORY_SEPARATOR; 
    $fileName    = $_POST['articleSlug'];
    $storeFolder = '../uploads';  

if (!empty($_FILES)) {

    $tempFile = $_FILES['file']['tmp_name'];                      

    $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;  

    $targetFile =  $targetPath . $fileName; 



    move_uploaded_file($tempFile,$targetFile);

}
?>
最后,您可以对两个可能的目的地进行vardump,并对它们进行比较,以检测发生了什么

var_dump($targetPath . $fileName, $targetPath. $_FILES['file']['name']);

只需更改$TARGETFILE,您的问题是…?您尝试过吗?或者你只是要求这样做并告诉你它是有效的。我已经尝试更改$targetFile值,但该文件未上载,因此我还原所有更改并发布此工作示例。编辑我不明白为什么我得到了-4票,但谢谢!你从不费心检查上传或移动是否成功<代码>$\设置的文件没有意义。上载失败可以/将数据设置为$\u文件。由于某种原因,$\u文件中有一个
['error']
参数,
move\u-uploaded\u-file
也返回true/false。你从来没有检查过这些,所以你只是假设没有任何问题。态度很糟糕。谢谢,现在开始工作了!
var_dump($targetPath . $fileName, $targetPath. $_FILES['file']['name']);