php 中$_FILES 文件上传中重要函数

$_files["file"]["name"] - 被上传文件的名称

$_files["file"]["type"] - 被上传文件的类型

$_files["file"]["size"] - 被上传文件的大小,以字节计

$_files["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称

$_files["file"]["error"] - 由文件上传导致的错误代码

HTML前端代码如下:

  1. <html>
  2. <body>
  3. <form action="upload_file.php" method="post"
  4. enctype="multipart/form-data">
  5. <label for="file">filename:</label>
  6. <input type="file" name="file" />
  7. <br />
  8. <input type="submit" name="submit" value="submit" />
  9. </form>
  10. </body>
  11. </html>

php代码如下:

  1. <?php
  2. if ((($_files["file"]["type"] == "image/gif")
  3. || ($_files["file"]["type"] == "image/jpeg")
  4. || ($_files["file"]["type"] == "image/pjpeg"))
  5. && ($_files["file"]["size"] < 20000))
  6. {
  7. if ($_files["file"]["error"] > 0)
  8. {
  9. echo "error: " . $_files["file"]["error"] . "<br />";
  10. }
  11. else
  12. {
  13. echo "upload: " . $_files["file"]["name"] . "<br />";
  14. echo "type: " . $_files["file"]["type"] . "<br />";
  15. echo "size: " . ($_files["file"]["size"] / 1024) . " kb<br />";
  16. echo "stored in: " . $_files["file"]["tmp_name"];
  17. }//开源软件:phpfensi.com
  18. }
  19. else
  20. {
  21. echo "invalid file";
  22. }
  23. ?>

$_files数组内容如下:

$_files['myfile']['name'] 客户端文件的原名称。

$_files['myfile']['type'] 文件的 mime 类型,需要浏览器提供该信息的支持,例如"image/gif"。

$_files['myfile']['size'] 已上传文件的大小,单位为字节。

$_files['myfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。

$_files['myfile']['error'] 和该文件上传相关的错误代码。['error'] 是在 php 4.2.0 版本中增加的。下面是它的说明:(它们在php3.0以后成了常量)

upload_err_ok

值:0; 没有错误发生,文件上传成功。

upload_err_ini_size

值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。

upload_err_form_size

值:2; 上传文件的大小超过了 html 表单中 max_file_size 选项指定的值。

upload_err_partial

值:3; 文件只有部分被上传。

upload_err_no_file

值:4; 没有文件被上传。

值:5; 上传文件大小为0.