php文件上传配置


php.ini设置

  • file_uploads = on 是否允许HTTP文件上传 关闭off。
  • upload_tmp_dir = /tmp 文本上传临时存放目录  一定要给目录读写权限。
  • upload_max_filesize = 2M 上传文件最大尺寸。
  • post_max_size = 8M 通过表单POST最大值,超出$_POST和$_FILES将会为空。
  • max_execution_time = 30 每个PHP页面最大运行时间(单位秒)默认30秒。
  • max_input_time = 60 每个php脚本解析请求数据所用的时间(单位秒),默认60秒。如果设置0,测标示无时间限制。
  • memory_limit = 128M  单个PHP脚本所用申请到的最大内存。不限制大小将其设为-1。
提示:需要注意大小 memory_limit > post_max_size > upload_max_filesize

nginx配置文件设置

如果你的服务器是nginx,还需要修改nginx配置文件。

nginx默认有个上传文件大小的参数设置,默认上传大小是1M,超过大小,连接直接断开。此参数正是client_max_body_size = 1M。(在这已经坑了2次

假设要上传一个50M的大文件。配置 php.ini 如下:
file_uploads = On
upload_tmp_dir = "/tmp"
upload_max_filesize = 50M
post_max_size = 100M
max_execution_time = 600
max_input_time = 600
memory_limit = 128M

配置 nginx.conf文件 client_max_body_size = 80M

注意http请求头信息需要 

Content-Type: multipart/form-data;
html:
<form enctype='multipart/form-data' method='post' action=''>
   <input name='upload_file' type='file' />
   <button type='submit'>上传</button>
</form>
ajax上传可以用jquery一个好的插件ajaxfileupload

常常是最后一把钥匙打开了门