Php上载文件没有重命名

时间:2013-07-17 06:46:23

标签: php file file-upload upload

我有这个代码,我想用它自己的名字上传图片。

<?php
print_r($_FILES);
$new_image_name = "foto1.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"]
,"/home/izmircic/public_html/upload/".$new_image_name);?>  

我试过

<?php
print_r($_FILES);
move_uploaded_file($_FILES["file"]["name"], "/home/izmircic/public_html/upload/");
?>  

但它不起作用。

3 个答案:

答案 0 :(得分:0)

move_uploaded_file()的参数是当前路径,包括文件名和目标路径,包括文件名。

应该是:

move_uploaded_file($_FILES["file"]["tmp_name"] ,"/home/izmircic/public_html/upload/".$_FILES["file"]["name"]);

您还应该测试返回值,看它是否失败:

$moved = move_uploaded_file($_FILES["file"]["tmp_name"] ,"/home/izmircic/public_html/upload/".$_FILES["file"]["name"]);

if($moved){
    echo 'success';
} else {
    echo 'failed';
}

通过允许上传的文件保留其原始名称,您需要对其正在进行的任何操作进行验证,例如,如果您只需要图像,则检查文件扩展名并将图像加载到GD库中以验证它实际上是图像。

为了最好的安全性,最好将文件存储在文档根目录之外,并使用PHP脚本根据需要提供它们,最好使用生成的文件名,而不是允许上传者选择。

答案 1 :(得分:0)

try this
<?php

print_r($_FILES);
$new_image_name = "foto1.jpg";  // remove this one and replace $_FILES["file"]["name"]
move_uploaded_file($_FILES["file"]["tmp_name"]
        , "/home/izmircic/public_html/upload/" . $_FILES["file"]["name"]);
?>

答案 2 :(得分:0)

我认为这可能适合你

move_uploaded_file($ _ FILES [ “文件”] [ “tmp_name的值”], “.//家/ izmircic /的public_html /上传/".$_ FILES [” 文件 “] [” 名称“]);