php.ini针对文件上传的修改还有move_uploaded_file()函数对中文字符上传失败的解决方法

3 篇文章 0 订阅
3 篇文章 0 订阅

以下设置为xampp中:

打开php.ini,首先找到

file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize = 8m ;望文生意,即允许上传文件大小的最大值。默认为2M
post_max_size = 100m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。


进一步配置以下的参数
max_execution_time = 30 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 60 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 1024m ;每个PHP页面所吃掉的最大内存,默认1024M
把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了
max_execution_time = 600
max_input_time = 600
memory_limit = 1024m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 32m

post_max_size = 100m



还有就是使用move_uploaded_file()函数的时候,需要注意一下问题


因为php字符编码和windows不同的问题,简体中文版的windows对文件名的命名一般使用gbk或gb2312编码。而php中的非ASCII字符串变量的值大多使用utf8编码(当然,这个默认值可以修改。。)。你需要将$name变量转换为gbk编码,才能在windows的文件系统中命名并存储下来。可以使用mb_convert_encoding函数来转换字符串的编码。
假设你的php是utf8编码,那么你将你的代码中
move_uploaded_file($tmp_name,'upload/' .$name); 
这一行改成
move_uploaded_file($tmp_name,'upload/' .mb_convert_encoding($name,"gbk", "utf-8"));


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值