我都不好意思了: 还是不行啊,不过现在在本地和局域网内测试如果用$imgsource作为文件变量的话是可以传送成功的,如果改成$_FILES['imgsource']的话就不可以了,而网络上两种都不行:( 当把$imgsource改成$_FILES['imgsource']则错误提示:Unable to open 'Array' 不管怎样,先谢谢你了~~鞠躬:) 是不是我的服务器上register_globals设为Off,可是我记得我改过了啊!
对不起啊,我刚才忘了看错误代码,文件传是传上去了,可是目标文件创建不了,错误代码如下: Unable to create '../image/20030420183753.gif': Permission denied in /usr/local/apache/htdocs/bbs/sub_form/uploadfile.php on line 13 是我没有权限还是我的路径又写错了?可是 /usr/local/apache/htdocs/bbs/image文件夹是存在的啊! 谢谢指教,急,新开贴接分!
$IMG_SIZE=getimagesize($imgsource); //错误
$width=$IMG_SIZE[0];
$height=$IMG_SIZE[1];
$file_name=date("YmdHis").".jpg";
$to="../image/".$file_name;
copy($imgsource,$to); //错误<form name="form1" ACTION="uploadfile.php">
<input type="hidden" name="bgcolor" value="#ffffff">
<input type="file" name="imgsource" id="imgsource">
<input type=submit name=upload value="确定">
</form>
上传文件必须加enctype="multipart/form-data";
===============================================
另:上传的文件变量最好用下面的数组.因为在PHP4.3..后register_globals的默认值为Off$_FILES['userfile']['name']
客户端机器文件的原名称。 $_FILES['userfile']['type']
文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。 $_FILES['userfile']['size']
已上传文件的大小,单位为字节。 $_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。 $_FILES['userfile']['error']
和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。
$_FILES['userfile']['tmp_name']其中的userfile填的是什么?
我的代码中用的是不是:imgsource?
还有,copy中第一个参数我用的是$_FILES['userfile']['tmp_name'],可以么?
再次麻烦您了。
============
文件上传.
文件名:upload.php
<?php
$minSize=1;//上传文件大小的最小限
$maxSize=2000000;//最大限
if($_POST['submit']){
if(!$_FILES['up']['size']<$minSize)//最小验证
{
if($_FILES['up']['size'] >$maxSize) //最大验证
{ //不合法
echo "<script language=javascript >window.alert(\"文件太大!请您压缩或分次发送!\");</script>";
}
else
{ //合法
@copy($_FILES['up'],$_FILES['up']['name']);//后者可改为放置文件的路径和文件名
echo "<script language=javascript >window.alert(\"文件成功上传!!\");</script>";
}
}
}
?>
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1">
<input name="up" type="file"><br/><input type="submit" name=submit value="提交">
<input name="reset" type="reset" id="reset" value="重置"></form>
还是不行啊,不过现在在本地和局域网内测试如果用$imgsource作为文件变量的话是可以传送成功的,如果改成$_FILES['imgsource']的话就不可以了,而网络上两种都不行:(
当把$imgsource改成$_FILES['imgsource']则错误提示:Unable to open 'Array'
不管怎样,先谢谢你了~~鞠躬:)
是不是我的服务器上register_globals设为Off,可是我记得我改过了啊!
在upload.php文件中,改为下面的
@copy($_FILES['up']['tmp_name'],$_FILES['up']['name']);//后者可改为放置文件....把你的$imgsource改为$_FILES['imgsource']['tmp_name']
Unable to create '../image/20030420183753.gif': Permission denied in /usr/local/apache/htdocs/bbs/sub_form/uploadfile.php on line 13
是我没有权限还是我的路径又写错了?可是
/usr/local/apache/htdocs/bbs/image文件夹是存在的啊!
谢谢指教,急,新开贴接分!
不过这不太安全.
你看一下image的创建者是不是(httpd)apache,如果不是,可以将创建人加入到apache的同一组内.设为同组人可读写.
你试一试吧,我现在没有使用linux,所以不一定全对.
到
http://expert.csdn.net/Expert/topic/1692/1692757.xml?temp=.894375
接分吧,不多,只有30分,请笑纳