首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP与模板与代码加密/优化 » [求助]有关上传的(实属无奈的选择)  


  作者:slopesun
  注册时间:2004-09-07
  主题/回复:58/67
  积分:753
  等级:★★★(六级)
  称号:声名鹊起

  ken.wang@esolux...
  185627321
  www.

 

 发表:2004-11-16 18:36:16 阅读 2272 次 回复 2 次 得分1  |   字号 字色
[求助]有关上传的(实属无奈的选择)
有关上传的文章这个论坛已经有好几篇了,我也看了。但当自己编写的时候老是出现莫名其妙的错误。调试了好久也没有找出原因,无奈之下想到求助于各位。
下面是php.ini中有关上传的配置,这个好象没错。
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = d:\test
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

  下面是upload.html
<form enctype="multipart/form-data" action="upload.php"  method=post>
<input type="hidden" name="MAX_FILE_SIZE" value="10000">
upload this file <input type="file" name="userfile">
<input type="submit" value="上传">
</form>
  
 下面是upload.php
<html>
<head><title><h1>upload</h1><title></head>
<body>
<?
if ($userfile=="none")
{
echo "no file upload";
exit;
}
if ($userfile_size==0)
{
echo "file is zero";
exit;
}
if ($userfile_type!="text/plain")
{
echo "file is not text/plain";
exit;
}
if (!$is_uploaded_file($userfile))
{
echo "file upload attack";
exit;
}
$upfile="d:/test".$userfile_name;
if (!copy($userfile,$upfile))
{
echo "can not move file into Splace";
exit;
}
echo "file uploaded successfully<br>";
$fp=fopen ($upfile,"r");
$contents=fread($fp,filesize($upfile));
fclose($fp);
$contents=strip_tags($contents);
$fp=fopen($upload,"w");
fwrite($fp,$contents);
fclose($fp);
echo "uploaded file contents:<br><hr>";
echo $contents;
echo "<br><hr>";
?>
</body>
</html>
<?
function is_uploaded_file($filename)
{
if (!$tmp_file=get_cfg_var('upload_tmp_dir'))
{
$tmp_file=dirname(tempnam('', ''));

}
$tmp_file.='/'.basename($filename);
return (ereg_replace('/+','/',$tmp_file)==$filename);
}
?>
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2004-11-17 16:28:02  评分:1 

请问“莫名其妙的错误”是什么错误??
把错误信息贴出来才容易发现什么地方错了啊。


我粗略看了一下,upload.php的第一行php代码:
if ($userfile=="none")
就不一定对。在php4以后的版本中,已经不再默认支持global_register,你没有接收而直接使用$userfile是不对的。
还有后面的:
$userfile_size
$userfile_type
$userfile_name
等等变量,都是非常陈旧的使用方法。在新版本的php上按理说已经淘汰了。不知道你从哪里找的这种方法。
php4以后,使用FILES[]来接收上传文件。
详情参看:http://www.17php.com/bbs/show_title.php?id=304
 2#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 2#楼 发表于2004-11-17 16:37:37  评分: 

另:
PHP4中对上传文件的处理方法强烈推荐参考PHP在线手册中的《文件上传处理》章节。(本站刚刚推出PHP在线手册,资料来自www.php.net)
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.004sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版