2013-07-29 134 views
-1

我已经获得了用于上传图像的上传表单,我想将图像的名称更改为特定名称。将上传图像的名称更改为特定名称

这是我的代码:

<?php 

// A list of permitted file extensions 
$allowed = array('png', 'jpg', 'gif','zip'); 

if(isset($_FILES['upl']) && $_FILES['upl']['error'] == 0){ 

$extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION); 

if(!in_array(strtolower($extension), $allowed)){ 
    echo '{"status":"error"}'; 
    exit; 
} 

if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/'.$_FILES['upl']['name'])){ 
    echo '{"status":"success"}'; 
    exit; 
} 
} 

echo '{"status":"error"}'; 
exit; 
+0

那么您接收到的错误或您遇到的问题是什么? –

+0

你所做的只是给它和以前一样的名字。 PHP没有这样做,但你是。看看'move_uploaded_file'函数的第二个参数 – Flosculus

回答

0
if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/your_own_name_here.'$extension)){ 
    echo '{"status":"success"}'; 
    exit; 
} 
+0

it剂量工作,是否有可能我下载完整的源代码链接,所以你可以看到完整的实现 – user2617870

+0

给我的链接 – sudhakar

+0

http://tutorialzine.com/2013/05/mini-ajax-file-upload-form /#comment-85865,从那里下载并看看wat说的话,如果最终你对我想要的做出正确的改变,你可以离开它并发布它,会非常感谢 – user2617870

0

你应该改变$ _FILES [ 'UPL'] [ '名']在下面的代码

if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/'.$_FILES['upl']['name'])){ 

例如:

if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/nameOfTheFile.jpg')){ 
+0

它dosent工作,是否有可能我gv ua链接downlod完整的源代码,所以你可以看到完整的实施 – user2617870

0

你可以添加哟您在调用函数move_uploaded_file中的自定义文件名称。 一样,

if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/'.'yourcustomname'.$extension)){ 

如果你想添加独特的名字,那么你可以使用像,

if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/'.time().$extension)){ 
+0

它dosent工作,是它有可能让我链接到下载完整的源代码,所以你可以看到完整的实现 – user2617870

0

改变,以反映你的问题,会产生基于当前时间的随机数和追加最初上传的文件的扩展名。

0
$temp = explode(".", $_FILES["file"]["name"]); 

$newfilename = round(microtime(true)) . '.' . end($temp); 

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename); 
+0

关于什么是最后的文件名将是伟大的一些细节 –