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);
4

4 回答 4

2

你可以这样做:

$extension = array_pop( explode(".", $_FILES['Filedata']['name']) ); //get extension
$targetFile = $targetPath . "some_new_name".$extension;
tamano_nuevo_foto($tempFile, 420, $targetFile);
于 2012-08-22T07:34:55.927 回答
0

第一:您似乎有一条可由用户操纵的路径。您直接在路径中使用 $_REQUEST['folder'] 是不好的。用户可以把任何东西放在那里,甚至像 ../../../ 这样的东西在你的文件系统中移动!

要更改名称,只需:

$targetFile = $targetPath 。“我的文件名.png”;

于 2012-08-22T07:36:38.770 回答
0

或者您可以使用此功能:

function add_s($file){
    $fName = substr($file, 0,strpos($file, "."));
    $fExtension = substr($file, strpos($file, "."));
    $newFName = $fName."_s".$fExtension;
    return $newFName;
}
于 2012-08-22T07:40:01.707 回答
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 ??
于 2012-08-22T07:47:35.870 回答