请教二个网站设计中的问题。

zzhhll003 2003-12-12 05:08:14
我想在网站中做一个文件上传的东东,思路是这样的:1、把上传的文件COPY到一个文件夹中(为防止文件重名,用随机数给上传的文件起名字);2、把相关的资料写入一个数据库中(如:原始文件名,文件大小,文件的保存路径等);3、在网站前台把数据库中的相关的资料显示出来,供用户调用。但现在我遇到了两个无法解决的问题,一是文件的保存路径我不知道该怎么写入数据库中(如:XXX\\XXX\\FILE),二是我不知道该怎么把文件保存路径从数据库中调出来。请问各位高手,我的思路究竟有没有问题,如果没有,能告诉我该怎么做吗?
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzhhll003 2003-12-12
  • 打赏
  • 举报
回复
谢谢,我已经想通了。
linjianwu 2003-12-12
  • 打赏
  • 举报
回复
更正一下。我存的是文件名不是路径。
从数据库里调文件出来。可以使用
$photo_path="photo/".$r[username]."/".$r[photo];
//photo是从数据库里读出来的文件名
//username是区别是谁传的文件。也是从数据库里读出来的。如果上面没有加的话。这个就不要啦。如:$photo_path="photo/".$r[photo];
然后图片里<img name="" src="<?=$photo_path?>" width="80" height="100" alt="">
feyge 2003-12-12
  • 打赏
  • 举报
回复
1、可以用时间date来产生数字,然后改名,其中一个方法而已

2、记录一个新文件名(反正传上去都改名了的)就行了(为了方便管理,上传的文件应统一放在某个文件夹,这样你输出时就可以 folder/<?echo ...?>)

3、调文件名?就像普通读取数据库一样的select * from table where....
linjianwu 2003-12-12
  • 打赏
  • 举报
回复
if($photo!=""){
if($photo_size>5000){
error("文件太大","history.back(0)");
}
if (($photo_type== "image/pjpeg")OR($photo_type == "image/gif")){
$photodir="photo/".$loginname."/";
if($photo_type== "image/pjpeg"){
$type_pho=".jpg";
}elseif($photo_type == "image/gif"){
$type_pho=".gif";
}
if(!(file_exists($photodir)and is_dir($photodir))){
mkdir($photodir,0700);
}
$time=date("Y-m-d H:i:s");
$k=explode(" ",$time);
$k1=explode("-",$k[0]);
$k2=explode(":",$k[1]);
$photo_name=$k1[0]."_".$k1[1]."_".$k1[2]."_".$k2[0]."_".$k2[1]."_".$k2[2].$type_pho;
copy($photo,$photodir.$photo_name);
$query="insert into photo(username,photo,time) values('$loginname','$photo_name',now())";
$sql=$class->query($query);
if($sql){
error("照片上传成功","welcome.php?action=mydom");
}
}else{
error("传照片只能是JPG或GIF","history.back(0)");
exit;
}
}文件重复问题,你可以使用当前时候再去分解后再当文件名。如上:$k=explode(" ",$time);
$k1=explode("-",$k[0]);
$k2=explode(":",$k[1]);
$photo_name=$k1[0]."_".$k1[1]."_".$k1[2]."_".$k2[0]."_".$k2[1]."_".$k2[2].$type_pho;
//$loginname是用户登陆的用户名。把这个去掉也可以。
文件要新建一个目录专门来存放的。
本人这里只存文件的路径。没有存大小。你自已加一下吧。还有。这个代码是传图片的。
我想转文件的道理是一样。希望对你有帮忙。看一下吧。
不懂再说。
zzh26 2003-12-12
  • 打赏
  • 举报
回复
建议用数据库的自动编号作为文件名,随机数也可能重名的。全路径不用纪录了,你都是放到一个文件夹取出来的时候用文件夹路径+数据库自动编号访问文件

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧