InfoQ

交流

讨论:图片上传后文件名的问题

作者 gatebill 发布于 2003-09-01 分类:php基础编程

我把图片上传后,我想让它自动更改文件名,该怎么办呢?谢谢!



逛论坛交流图片上传后文件名的问题

加入书签
digg+,
reddit+,
del.icio.us+,
dzone+

10 条回复

回复

你可以用时间,也可以用随机函数 发表人 gas_lb 发表于 09月13日
能给个代码吗? 谢谢!! 发表人 gatebill 发表于 09月13日
下面是以上传时间随机改名的代码,仅供.. 发表人 skyhorse 发表于 09月13日
这个程序不能运行?? 发表人 eason 发表于 09月13日
呵呵,当然直接不能运行了,这是从我的.. 发表人 skyhorse 发表于 09月13日
马上就试试,谢谢!!;) 发表人 gatebill 发表于 09月13日
呵呵,不用谢了,都是大侠们的功劳,我.. 发表人 skyhorse 发表于 09月13日
我这里出了一些错误,有些代码还看不懂.. 发表人 gatebill 发表于 09月13日
能不能吧数据库的那部分也写出来啊 发表人 simplegift 发表于 09月13日
命名?执行上传的时候就重命名了呀 发表人 冬冬 发表于 09月13日
  1. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 gas_lb

    你可以用时间,也可以用随机函数

  2. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 gatebill

    能给个代码吗?
    谢谢!!

  3. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 skyhorse

    下面是以上传时间随机改名的代码,仅供参考,有点乱:) [php] if($action1){ //如果文件上传,进行处理 set_time_limit(60); // 以确保较大文件上传 $path1 = dirname($PATH_TRANSLATED)."/upload/"; //输出上传路径; print $path1."
    "; // 显示上传路径名 for($i=1;$i<2;$i++) { $temp1="file".$i; $temp2="file".$i."_name"; $source=$$temp1; $source_name=$$temp2; print $temp."=".$$temp."
    "; print $file1_name; print $file2_name; //exit; $source = $file1; $source_name = $file1_name; print $source."
    "; print $source_name; //exit; if(($source <> "none")&&($source <> "")) { // 看看文件是否存在,如果不存在文件名则为“none” if($error1 <> 1) { // 如果文件夹设置为不可写状态,就不能正常上传一个文件 $dest = $path1.$source_name; // 添加文件名到上传路径 if(copy($source,$dest)){ // 从临时文件目录中拷贝文件到上传文件目录,并检查是否成功 echo "$source 成功上传!
    "; $imagesize = getimagesize($dest); //对上传文件按时间进行改名 switch($imagesize[2]) { case 0: echo "
    未知图片格式
    "; unlink($dest); exit; case 2: echo "
    图片格式为JPG
    "; echo "$dest 图片宽: $imagesize[0]
    "; echo "$dest 图片高: $imagesize[1]
    "; $newname = $path1; $newname .=$i.time() . ".jpg"; if(copy($dest,$newname)) { echo "
    JPG 图片成功从 $dest 更名为 $newname
    "; }else { echo "
    JPG 图片更名成功!
    "; } [/php]

  4. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 eason

    这个程序不能运行??

  5. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 skyhorse

    呵呵,当然直接不能运行了,这是从我的图片上传程序中抠出来的改名部分,下面是整个上传图片的处理代码,大家自己分析了(我也是抄大侠们的:),大家共享吧) [php] <? if($action1){ //如果文件上传,进行处理 set_time_limit(60); // 以确保较大文件上传 $path1 = dirname($PATH_TRANSLATED)."/upload/"; //输出上传路径; print $path1."
    "; // 显示上传路径名 for($i=1;$i<2;$i++) { $temp1="file".$i; $temp2="file".$i."_name"; $source=$$temp1; $source_name=$$temp2; print $temp."=".$$temp."
    "; print $file1_name; print $file2_name; //exit; $source = $file1; $source_name = $file1_name; print $source."
    "; print $source_name; //exit; if(($source <> "none")&&($source <> "")) { // 看看文件是否存在,如果不存在文件名则为“none” if($error1 <> 1) { // 如果文件夹设置为不可写状态,就不能正常上传一个文件 $dest = $path1.$source_name; // 添加文件名到上传路径 if(copy($source,$dest)){ // 从临时文件目录中拷贝文件到上传文件目录,并检查是否成功 echo "$source 成功上传!
    "; $imagesize = getimagesize($dest); //对上传文件按时间进行改名 switch($imagesize[2]) { case 0: echo "
    未知图片格式
    "; unlink($dest); exit; case 2: echo "
    图片格式为JPG
    "; echo "$dest 图片宽: $imagesize[0]
    "; echo "$dest 图片高: $imagesize[1]
    "; $newname = $path1; $newname .=$i.time() . ".jpg"; if(copy($dest,$newname)) { echo "
    JPG 图片成功从 $dest 更名为 $newname
    "; }else { echo "
    JPG 图片更名成功!
    "; } /******以下为生成缩略图源代码******/ // 本函数从源文件取出图象,设定成指定大小,并输出到目的文件 // 源文件格式:gif,jpg,,png // 目的文件格式:jpg // $newname: 源文件 // $dstFile: 目标文件 // $dstW: 目标图片宽度 // $dstH: 目标文件高度 //show($dest); //$aaa ="E:Inetpubwwwrootgetlansupload11056882714.jpg"; //$bbb ="E:Inetpubwwwrootgetlansuploadbb.jpg"; $dstfile = $path1; $dstfile .= time()."small".".jpg"; function makethumb($newname,$dstfile,$dstW,$dstH){ $data = GetImageSize($newname); switch ($data[2]){ case 1: $im = ImageCreateFromGIF($newname); break; case 2: $im = ImageCreateFromJPEG($newname); break; case 3: $im = ImageCreateFromPNG($newname); break; } $srcW=ImageSX($im); $srcH=ImageSY($im); $newim = ImageCreateTrueColor($dstW,$dstH); ImageCopyResized($newim,$im,0,0,0,0,$dstW,$dstH,$srcW,$srcH); ImageJpeg($newim,$dstfile); // 如果需要输出到浏览器,那么将上一句改为ImageJpeg($ni); // 如果需要其它格式的图片,改动最后一句就可以了 } //end function $dstW = 115; $dstH = 66; MakeThumb($dest,$dstfile,$dstW,$dstH); echo "能否正常显示: $dstfile"; ?> <? /******以上为生成缩略图源代码******/ } unlink ($dest); } unlink($source); // 从临时上传目录中删除临时文件 echo "这次上传的文件是 $newname
    "; } ?> <? } ?> <? //**********************(此处省略写入数据库代码)*************************// } //end for ?>
    返回上传单帧图片页面

    <? } //end if ?> [/php]

  6. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 gatebill

    马上就试试,谢谢!!;)

  7. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 skyhorse

    呵呵,不用谢了,都是大侠们的功劳,我们也都是拿来用而已,共同学习吧

  8. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 gatebill

    我这里出了一些错误,有些代码还看不懂,能解释一下吗??? for($i=1;$i<2;$i++) { $temp1="file".$i; $temp2="file".$i."_name"; $source=$$temp1; $source_name=$$temp2; print $temp."=".$$temp."
    "; print $file1_name; print $file2_name;

  9. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 simplegift

    能不能吧数据库的那部分也写出来啊

  10. 返回顶部

    Re: 图片上传后文件名的问题

    2003年09月13日 发表人 冬冬

    命名?执行上传的时候就重命名了呀




  11. 我有话要讲:(可以匿名发表, 发广告的有多远请滚多远!!!)

    昵称: 请输入验证码:


抢着回答

PHP可以做独立运行程序吗?

我突然想问问

用mysql_create_db()建库,有权限限制吗...

我用mysql_create_db()建库,可是不成功,是不是mysql有什么权限...

来看看大家

初来乍到,请大家帮忙

关于页面生成之后~调用动太语句的实现(...

这是个拟JS调用PHP的实现~当然不尽如意~ 这是我看到某个论坛上用...

俺qq又跑回来了!~

没事了,俺要回来了~

十年穿衣术

   Mr.Right以最聪明的方式展现出20、30、40岁男人的10年穿衣术...

怪了,火龙进来这么久,竟不灌水?

怪了,火龙进来这么久,竟不灌水,有问题?

庆祝:师姐来接我去吃麦当劳

呵呵 今天是美好的,快乐的一天 都快等不急了。 发贴庆...

如何完成这样一个新闻中心系统

想做这样一个简单的新闻中心,完成不了,各位多帮忙了? http...

字符串与数组之间的转化问题~~~~

为什么将字符串转化成数组时不能用以下方式进行: $str_fil...

[]