在PHP中重命名文件时出错

在PHP中重命名文件时出错,php,Php,我正在使用PHP将一个文件上载到我的目录中的一个文件夹中,无法使用以下代码重命名它 $da = date("dmY"); $ja = $uid.$da; $mukesh = $app.$ja; // If no errors, upload the image, else, output the errors if($err == '') { if(move_uploaded_file($_FILES['userfile'][$mukesh], $uploadpath)); 以下是PHP

我正在使用PHP将一个文件上载到我的目录中的一个文件夹中,无法使用以下代码重命名它

$da = date("dmY");

$ja = $uid.$da;

$mukesh = $app.$ja;

// If no errors, upload the image, else, output the errors
if($err == '') {
if(move_uploaded_file($_FILES['userfile'][$mukesh], $uploadpath));

以下是PHP关于如何处理上传的官方文档:

方法
move\u uploaded\u file()
需要两个参数,一个临时文件的文件名和一个新位置

$tmp = $_FILES['userfile']['tmp_name']; // temp path
move_uploaded_file($tmp, $uploadpath . '/' . $mukesh);
您需要命名您的输入元素
userfile

<input type="file" name="userfile" />

根据提供的代码片段,您可以执行以下操作

move_uploaded_file ($_FILES["userfile"]["tmp_name"], $uploadpath);

上载文件时,文件将使用临时名称存储在php.ini中指定的上载位置。$_FILES[“userfile”][“tmp_name”]

可以使用名称访问此文件位置。如果没有错误,则

 $uploads_dir = 'as per you defined';

 $tmp_name = $_FILES["userfile"]["tmp_name"];
 $name = 'custom_file_name.png';//$_FILES["userfile"]["name"];
 move_uploaded_file($tmp_name, $uploads_dir."/".$name);

您正在重命名文件的临时名称

如果要重命名文件,请更改要用于存储文件的名称

$filename = time().$_FILES['userfile']['name'];
$upload_path = 'path_to_ur_upload_folder'.$filename;
move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path );

move_upload_文件中的第一个参数是临时名称,在复制d上载时,流将使用该临时名称。。第二个参数是保存文件的路径(以及文件名)。。这是第二个参数,它将帮助您重命名正在上载的文件

,因此需要将$name重命名为$mukesh。它是否会更改扩展名您必须从上载的文件中以逻辑方式获取扩展名,并与上载文件所需的自定义名称一起使用。有些人使用$_FILES[“file”][“type”]但它并不可靠,因为它是由浏览器提供的,而不是由PHP提供的$userfile_extn=end(分解('.',$文件['userfile']['name']);或$userfile_extn=substr($_FILES['userfile']['name'],strrpos($_FILES['userfile']['name'],'.')+1);或者$userfile_extn=explode(“.”,strtolower($\u FILES['userfile']['name'])$ext=array\u pop($userfile\u extn);警告:move_upload_file(upload/Agri_Form_A.pdf/DS83479328032013):无法打开流:第48行的C:\xampp\htdocs\eg\sub.php中没有这样的文件或目录确保文件夹存在并且您有写的权限。ya有文件夹并且可以访问啊似乎您的变量
$uploadpath
不仅包含一个目录,还有一个文件名。请检查此变量。你也可以硬编码:
move_upload_file($tmp,upload/”.$mukesh)另外,别忘了设置一个扩展名。@mukhesh如果这个答案对您有效,请按答案左侧的大V,使其变为绿色。这将使有类似问题的人更容易找到答案,并且在将来的问题上,您将更快地得到答案!