0

現在のファイル名を使用してファイルをアップロードするコードがありますが、その名前と拡張子を持つファイルがサーバー上に存在しない限り問題ありません。名前を変更する前にランダムな一時ファイル名でアップロードするようにコードを変更するにはどうすればよいですか?

これが私のコードです:

if(!empty($_FILES['file']['name'])) {
copy($_FILES['file']['tmp_name'], WEB_UPLOAD."/pdf/".$_FILES['file']['name']) or die("Error uploading file.");
$ext = strtolower(substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".")));
$filename = $url.$ext;
rename(WEB_UPLOAD."/pdf/".$_FILES['file']['name'], WEB_UPLOAD."/pdf/".$filename);       
mysql_query ("UPDATE downloads SET file ='".$filename."' WHERE id = '".$insertid."'") or die (mysql_error());
}

いつもお世話になっております!ピート

4

2 に答える 2

1
//get the extension
$ext = strtolower(substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".")));
//generate random name
$random_name = uniqid();
copy($_FILES['file']['tmp_name'], WEB_UPLOAD."/pdf/".$random_name . '.' . $ext) or die("Error uploading file.");

今、あなたがそれでやりたいことは何でもしてください。保存されるファイル名は$random_name.'.'.$ext

于 2013-10-10T08:42:51.073 に答える
1
if(!empty($_FILES['file']['name'])) {
    $targetFile = time().$_FILES['file']['name'];
    copy($_FILES['file']['tmp_name'], WEB_UPLOAD."/pdf/".$targetFile) or die("Error uploading file.");
    $ext = strtolower(substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".")));
    $filename = $url.$ext;
    rename(WEB_UPLOAD."/pdf/".$targetFile , WEB_UPLOAD."/pdf/".$filename);       
    mysql_query ("UPDATE downloads SET file ='".$filename."' WHERE id = '".$insertid."'") or die (mysql_error());
}

ファイル名に現在のタイム スタンプが追加されるため、ファイル名は一意になります。

于 2013-10-10T08:44:44.490 に答える