永发信息网

PHP上传了没文件

答案:2  悬赏:0  手机版
解决时间 2021-05-07 06:43
  • 提问者网友:骨子里的高雅
  • 2021-05-06 06:00

我的代码:

<?php
echo print_r($_FILES["upfile"]);
?>
<form action="" enctype="multipart/form-data" method="POST" name="UP">
<input name="upfile" type="file">
<input type="submit" value="上传">
</form>

显示的:Array ( [name] => dossier.gif [type] => image/gif [tmp_name] => F:\wamp\tmp\php336.tmp [error] => 0 [size] => 893 ) 1

那位大神可以教教我啊~~~

再问下~tmp_name返还1,php.ini在么修改?

最佳答案
  • 五星知识达人网友:廢物販賣機
  • 2021-05-06 06:16

echo print_r($_FILES["upfile"]);


你输出的就是你上传的路径。


就没有上传好不,


表单传递过来的是你本地文件所在的路径,


你的Error返回信息是0说明没有发生错误。


1、FORM标签enctype属性
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,
这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;
只有使用了multipart/form-data,才能完整的传递文件数据
<form enctype="multipart/form-data" method="post" name="upform">
input标签 type 属性中的 "file"
<input name="upfile" type="file">

2、$_FILES 系统函数
$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 储存的临时文件名,一般是系统默认。
$_FILES['myFile']['error'] 该文件上传相关的错误代码。

3、move_uploaded_file函数
上传后移动文件到目标位置的函数
move_uploaded_file(临时文件,目标位置和文件名);

4、is_uploaded_file 函数
判断上传MIME类型的文件函数


利用php的文件函数来实现上传


这段代码分为两个文件,一个为upload.html,一个是upload.php



  • upload.html


<form enctype="multipart/form-data" action="upload.php" method="post">


<input type="hidden" name="max_file_size" value="100000">


<input name="userfile" type="file">  


<input type="submit" value="上传文件">


</form>


其中,



  1. 请注意<form enctype="multipart/form-data"......>这是一个标签,我们要实现文件的上传,必须指定为multipart/form-data,否则服务器将不知道要干什么。
  2. 值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。
  3. MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。


  • upload.php


$f=&$HTTP_POST_FILES['Myfile'];


$dest_dir='uploads';//设定上传目录


$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//设置文件名为日期加上文件名避免重复


$r=move_uploaded_file($f['tmp_name'],$dest);


chmod($dest, 0755);//设定上传的文件的属性


或者


<?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?>


以上范例中 $_FILES 数组的内容如下所示。我们假设文件上传字段的名称为 userfile(名称可随意命名)



  • $_FILES['userfile']['name'] 客户端机器文件的原名称。
  • $_FILES['userfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
  • $_FILES['userfile']['size'] 已上传文件的大小,单位为字节。
  • $_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。
  • $_FILES['userfile']['error'] 和该文件上传相关的错误代码


  1. 值:0; 没有错误发生,文件上传成功。
  2. 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
  3. 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
  4. 值:3; 文件只有部分被上传。
  5. 值:4; 没有文件被上传。
全部回答
  • 1楼网友:三千妖杀
  • 2021-05-06 07:36

目录权限是否可写,

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯