作者yohko ()
看板PHP
标题[请益] 关於档案上传
时间Mon Jan 14 02:34:18 2008
小弟写了一个档案上传的程式,可以成功的上传到资料夹
在资料夹里面看档案也都是正确,而且也跟上传的档案是一样的
但是如果透过apache下载下来,档案就坏掉了,请问这问题是出在哪呢?
我使用的环境是AppServ 2.5.9 + windows XP
(因为要用mysql跟apache又偷懒不想分开灌...^^;)
===还是贴code好了,写的很烂高手别鞭太用力>_<
<?php
include "filesize.php";
$file_name = $_COOKIE["std_team"];
$file_size = $_FILES["up_file"]["size"];
$uploader_dir = "./files/";
$old_filename = $_FILES["up_file"]["name"];
$ext = strrchr($old_filename, '.');
$newname = "team".$file_name.$ext;
$uploader_file = $uploader_dir .$newname;
$md5ex = md5($old_filename);
if (move_uploaded_file($_FILES['up_file']['tmp_name'] , $uploader_file)){
$up_date = time();//取得上传完成时间
$link = mysql_connect("localhost","orz","1234");//连资料库
if (!$link){
die("连结失败");
}
$db_selected = mysql_select_db("project",$link);
if (!$db_selected){
die("开启资料库失败");
}
$sql = "update team set uploaded = '1' , up_time = '$up_date' , file_name =
'$uploader_dir$newname' , md5 = '$md5ex' , file_size = '$file_size' where
team = '$file_name'";
$result = mysql_query($sql,$link);
if (!$result){
echo $htmlhd;
die("执行SQL失败");
echo $htmlft;
}
mysql_close($link);//关资料库
echo '<head><meta http-equiv="content-type"
content="text/html;charset=utf-8"></head><center><table border=0>';
echo "<tr>上传成功</tr>";
echo "<tr>档案大小:".FormatByte($file_size)."</tr>";
echo "<tr>MD5验证:".$md5ex."</tr>";
echo "<tr><a href=".$uploader_dir.$newname.">检视档案</a>";
echo "<tr><a href= javascript:history.back()>回上一页</a></tr>";
echo "</table></center>";
}
else{
echo "上传失败(".$_FILES["up_file"]["error"].")";
}
?>
==filesize.php
<?php
function FormatByte($file_size){
if($file_size == 0){
$format = "";
}
else if($file_size <= 1024){
$format = $file_size."B";
}
else if($file_size <= (1024*1024)){
$format = sprintf ("%dkB",($file_size/1024));
}
else if($file_size <= (10*1024*1024)){
$format = sprintf ("%.2fMB",($file_size/(1024*1024)));
}
else{
$format = $file_size."B";
}
return $format;
}
?>
--
◤◢ ◤ ◥
◤ ◤ o ├─┤ o ◥
◢◣◥◤◢ │ │
◆ ◢ ◣ ╲╱ ◢
◤◢ ◣ ◢ fishhzy123ψ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.15.57
1F:推 JoeHorn:坏掉是指...? 上传後自己到上传的资料夹开看看。 01/14 02:54
2F:→ JoeHorn:别用中文档名,除非你用程式处理好下载的方式。 01/14 02:57
3F:→ yohko:就是下载下来的档案不能开 我有用程式处理更名成英文 01/14 15:02
4F:→ appleboy46:档案超过 2M? 01/14 15:16
5F:→ yohko:就算只有几k的也会 ~_~ 01/14 15:53
6F:→ aitch:所谓不能开是指你的WINDOWS不知道如何处理你下载的档案吗? 01/14 18:52
7F:→ aitch:副档名是什麽?你处理副档名的方式对吗? 01/14 18:53
8F:→ aitch:中文档名可以用mb_convert_encoding()处理中文档名。 01/14 18:53
※ 编辑: yohko 来自: 220.134.15.57 (01/14 23:44)
※ 编辑: yohko 来自: 220.134.15.57 (01/15 02:13)
9F:推 JeffMcBride:档案跟下载後的档案拿来比较看改变了什麽部份试试 01/15 21:39