201009250526476932.jpg  比如类似这个图片文件。上传以后就修改成日期的命名。
这是代码、。
看看哪里错了。
if($_POST['Submit'])
{
$title=$_POST["title"];
$fl=$_POST["fl"];
$link=$_POST["link"];
$file = $_FILES['file'];
$name = $file['name'];
$tmp = $file['tmp_name'];
$dateFile = date('YmdHis').rand(100,999);
$rename = rename($name,$dateFile+"jpg");
move_uploaded_file($tmp, "../upload/".$name);
$sql="insert into ad set title='$title',fl='$fl',pic='upload/$name',link='$link'";
mysql_query($sql);
mysql_close($conn);
echo "<script language='javascript'>";
echo "alert('添加成功!');";
echo " location='addad.php';";
echo "</script>";
}

解决方案 »

  1.   

    move_uploaded_file($tmp, "../upload/".$name);move_uploaded_file($tmp, dirname(__FILE__)."/upload/".$name);
      

  2.   

    $name = $file['name'];//这是上传文件的原始文件名,并不存在于服务器上
    $tmp = $file['tmp_name'];//这是上传后的临时文件名
    $dateFile = date('YmdHis').rand(100,999);
    $rename = rename($name,$dateFile+"jpg");//你对不存在的文件重命名,难道不报错吗?
    $name = $dateFile.".jpg";//要这样写
    move_uploaded_file($tmp, "../upload/".$name);另外,你打算让所有上传的文件都有一个 jpg 后缀吗?
    显然是不妥当的,要这样
    $ext = pathinfo($file['name'], PATHINFO_EXTENSION);//取得源文件的后缀
    $name = $dateFile.'.'.$ext;//组装成新文件名
      

  3.   

    LZ 你仔细看 xuzuning版主的回答吧! 
    你要改名的话 在写这一句话时,
    move_uploaded_file($tmp, "../upload/".$name);
    $name就是你生成文件最后的名字 至于怎么规定 就随便你了 要注意的时后缀名,要去获取上传上来文件的后缀名,而不能写死(就算只会是图片,图片的格式也有很多种)。
      

  4.   

    $rename = rename($name,$dateFile+"jpg");
    move_uploaded_file($tmp, "../upload/".$name);//这里你用的还是文件原名,没有用你重新定义的名字$rename;时间格式的文件名可以这样定
    $rename = date("YmdHis",time())."_".rand(1000,9999).strrchr($file["name"],".");
    //例如20121202164725_4256.jpg
      

  5.   

    $rename = rename($name,$dateFile+"jpg"); 
    $rename = rename($name,$dateFile.".jpg");