怪问题:上传文件不能超过500K
前两个问题多谢大家的帮助,经过仔细检查,我发现,上传超过500K左右的文件,IE报告“该页无法显示”,而PHP.ini的相关参数已经更改。
并且,在我本机(IIS+PHP4.2X)上调试时,可以正常上传20余M的文件,如果超出php.ini的规定范围,程序也会报告。可是在服务器上(Linux的),程序则没有报错,IE直接显示“该页无法显示”,不知何故。
想了半天不知道是什么原因,会不会是与Apache的设置有关呢?多谢各位!
问题点数:0、回复次数:8Top
1 楼scissor(剪子)回复于 2004-01-02 21:24:28 得分 0
以下内容为程序代码:
<html><head>
<title>上载文件表单</title></head>
<body>
<form enctype="multipart/form-data" action="" method="post">
请选择文件: <br>
<input name="upload_file" type="file"><br>
<input type="submit" value="上传文件">
</form>
</body>
</html>
<?
$upload_file=$_FILES['upload_file']['tmp_name'];
$upload_file_name=$_FILES['upload_file']['name'];
if($upload_file){
$file_size_max = 1000*1000;// 1M限制文件上传最大容量(bytes)
$store_dir = "d:/";// 上传文件的储存位置
$accept_overwrite = 1;//是否允许覆盖相同文件
// 检查文件大小
if ($upload_file_size > $file_size_max) {
echo "对不起,你的文件容量大于规定";
exit;
}
// 检查读写文件
if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {
Echo "存在相同文件名的文件";
exit;
}
//复制文件到指定目录
if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {
echo "复制文件失败";
exit;
}
}
Echo "<p>你上传了文件:";
echo $_FILES['upload_file']['name'];
echo "<br>";
//客户端机器文件的原名称。
Echo "文件的 MIME 类型为:";
echo $_FILES['upload_file']['type'];
//文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
echo "<br>";
Echo "上传文件大小:";
echo $_FILES['upload_file']['size'];
//已上传文件的大小,单位为字节。
echo "<br>";
Echo "文件上传后被临时储存为:";
echo $_FILES['upload_file']['tmp_name'];
//文件被上传后在服务端储存的临时文件名。
echo "<br>";
$Erroe=$_FILES['upload_file']['error'];
switch($Erroe){
case 0:
Echo "上传成功"; break;
case 1:
Echo "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值."; break;
case 2:
Echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。"; break;
case 3:
Echo "文件只有部分被上传";break;
case 4:
Echo "没有文件被上传";break;
}
?>
Top
2 楼youbest(冲天飞豹)回复于 2004-01-02 21:26:17 得分 0
应该不是,很可能是你的服务器上的PHP没有配置正确导致的,检查一下小于500K的是否能上传,如果也不能你重新安装Apache试试看.Top
3 楼ice_berg16(寻梦的稻草人)回复于 2004-01-02 21:26:24 得分 0
估计是PHP的程序执行时间超时了
你把程序执行时间改大一点试试 比如
max_execution_time 1000Top
4 楼youbest(冲天飞豹)回复于 2004-01-02 21:27:48 得分 0
你搞错了吧,Linux下面哪有什么d:/呀!!
换成/tmp/试试看Top
5 楼youbest(冲天飞豹)回复于 2004-01-02 21:31:46 得分 0
$upload_file=$_FILES['upload_file']['tmp_name'];
$upload_file_name=$_FILES['upload_file']['name'];
$upload_file_size=$_FILE['upload_file']['size'];
if($upload_file){
$file_size_max = 1000*1000;// 1M限制文件上传最大容量(bytes)
$store_dir = "d:/";// 上传文件的储存位置
$accept_overwrite = 1;//是否允许覆盖相同文件
// 检查文件大小
if ($upload_file_size > $file_size_max) {
echo "对不起,你的文件容量大于规定";
exit;
}
Top
6 楼scissor(剪子)回复于 2004-01-02 22:17:50 得分 0
这样的,小于500K的文件可以上传
“d:/”这个路径在LINUX服务器上已经改为正确的了,文件相应的设置都改正了。
基本上是一按提交就报错
各位再看看?Top
7 楼makefool(装傻)回复于 2004-01-03 11:18:55 得分 0
哪来那么多糊涂虫瞎掰。
php.ini中有限制的,把限制改大了,就是1G你也能成。Top
8 楼scissor(剪子)回复于 2004-01-03 22:21:07 得分 0
php.ini中的几个参数都已经改大了,还是不行,怪啊Top




