2012-08-22 65 views
0

我有這裏代碼輸出我一個圖像..我需要改變它,因爲目前它給了我像:test.jpg,我需要的是它給我test_s.jpg需要在上傳後重命名圖像

使用重命名功能我猜!

$tempFile = $_FILES['Filedata']['tmp_name']; 
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'; 
$targetPath = str_replace('//','/',$targetPath); 
$targetFile = $targetPath . $_FILES['Filedata']['name']; 
tamano_nuevo_foto($stempFile, 420, $stargetFile); 
+0

你可以使用類似:'$的TargetFile = $ TARGETPATH。 '__FILES ['Filedata'] ['name'];' –

+0

這通常通過使用「正確」名稱的複製命令(從臨時文件夾到所需目標文件夾)完成。如果(副本($ tempFile,$ newpath_plus_filename)) {// yay success} – Najzero

+0

重點是我需要文件的名稱並添加一個_s – Alb

回答

2

你可以這樣做:

$extension = array_pop(explode(".", $_FILES['Filedata']['name'])); //get extension 
$targetFile = $targetPath . "some_new_name".$extension; 
tamano_nuevo_foto($tempFile, 420, $targetFile); 
+0

嘿謝謝你的答案,這是最接近我可以得到..但我需要保存文件的名稱,我只需要在名稱後面添加一個_s,然後是擴展名。可以修改它嗎? – Alb

+0

我想通了:) 你做了我的一天,我一直在努力這個好幾天!不僅僅是這個小小的部分byt :) :) :) :)謝謝謝謝謝謝! – Alb

+0

很高興你想通了...... :) –

0

第一:你似乎有可以由用戶操縱的路徑。直接在你的路徑中使用$ _REQUEST ['文件夾']是不好的。用戶可以將任何東西放在那裏,甚至像../../../這樣的東西來移動文件系統!

要更改名稱,只需:

$ targetFile = $ targetPath。 「myfilename.png」;

0

或者您可以使用此功能:

function add_s($file){ 
    $fName = substr($file, 0,strpos($file, ".")); 
    $fExtension = substr($file, strpos($file, ".")); 
    $newFName = $fName."_s".$fExtension; 
    return $newFName; 
} 
0

您應該使用pathinfomove_uploaded_file

$tempFile = $_FILES['Filedata']['tmp_name']; 
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'; // should make this more secure, like a fixed path or in a whitelist 
$targetPath = str_replace('//','/',$targetPath); 
$ext = pathinfo($_FILES['Filedata']['name'], PATHINFO_EXTENSION); 
$basename = pathinfo($_FILES['Filedata']['name'], PATHINFO_BASENAME); 
$targetFile = $targetPath . $basename . "_s" . $ext; 
move_uploaded_file ($tempFile , string $targetFile) 
//tamano_nuevo_foto($stempFile, 420, $stargetFile); // move and resize ??