我需要知道如何在文件以php脚本上传到我的服务器之前重命名文件的代码。我发布了我的 php 代码。
我需要它,因为我正在从手机上传图像,我不希望它被覆盖。
我能做到这一点吗?
<?php
$file_path = "uploads/";
$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo "success";
} else{
echo "fail";
}
?>
要在Android中重命名文件,您可以执行以下操作:
String file_path = <file path off your existing file you want to rename>
File from = new File(file_path,"from.txt");
File to = new File(file_path,"to.txt");
from.renameTo(to);
此代码适用于存储在内部或外部存储中的文件。只是为了写入外部存储,请记住您需要将android.permission.WRITE_EXTERNAL_STORAGE添加到您的Android清单中。
像下面这样编写代码。
$filename = $_FILES['upload_file']['name'];
$newname = 'alteredtext'.$filename; // you can also generate random number and concat on start.
$tmp_path = $_FILES['upload_file']['tmp_name'];
if(move_uploaded_file($mp_path, $newname)) {
echo "success";
} else{
echo "fail";
}
移动文件时,不需要使用 $_FILES 数组中传递的名称。 您可以创建所需的任何名称(假设路径有效)并将其作为move_uploaded_file的第二个参数传递。 如果你想要一个半随机的名称,你可以生成一个随机数,然后对其进行哈希处理或其他东西来创建文件名。
如果要先检查文件是否存在,然后将其重命名为具有数字后缀,则可以执行以下操作:
<?php
$base_path = "uploads/";
$file_path = $base_path . basename( $_FILES['uploaded_file']['name']);
if(file_exists($file_path)) {
$ctr = 0;
do { // increment an index to append to the filepath
$ctr++;
$file_path = $base_path . basename( $_FILES['uploaded_file']['name']) . "_$ctr";
} while(file_exists($file_path));
}
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo "success";
} else{
echo "fail";
}
?>
上面的代码段将继续递增,直到找到不存在的文件名。 当然,您需要添加一些边界和错误检查,虽然上面的代码片段演示了这个概念,但它并不完全准备好生产。