PHP上传的问题,为什么找不到上传的临时文件

PHP上传的问题,为什么找不到上传的临时文件,第1张

诊断你的代码真正的错误所在:(1) 打印$_FILES['fileName']['error']看返回什么样的错误,看是否超出了上传文件大小的设置,然后才能在临时文件里找到该文件。(2)找到php.ini文件,配置相关参数,

以下可供参考:

扩展

Windows 环境下的修改方法

第一步:修改在php5下POST文件大小的限制

1.编修php.ini

找到:max_execution_time = 30 ,这个是每个脚本运行的最长时间,单位秒,修改为: max_execution_time = 150

找到:max_input_time = 60,这是每个脚本可以消耗的时间,单位也是秒,修改为: max_input_time = 300

找到:memory_limit = 128M,这个是脚本运行最大消耗的内存,根据你的需求更改数值,这里修改为: memory_limit = 256M

找到:post_max_size = 8M,表单提交最大数据为 8M,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…这里修改为: post_max_size = 20M

找到:upload_max_filesize = 2M ,上载文件的最大许可大小 ,修改为: upload_max_filesize = 10M

第二步: Apache环境中的档案上传大小控制

修改位于Apahce目录下的httpd.conf

添加下面内容

LimitRequestBody 10485760

即10M=10*1024*1024,有的文章中提到应改为 600000000

重新启动apache,就可以在设置里看到你要的大小

Linux 环境下的修改方法

修改etc/php.ini

找到 File Uploadsh区域修改以下几个参数: file_uploads = on 是否允许通过HTTP上传文件的开关。默认为ON即是开 upload_tmp_dir 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹(moodle可以不改) upload_max_filesize = 8m 允许上传文件大小的最大值.

找到 Data Handling区域,修改 post_max_size = 8m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M

设上述四个参数后,上传小于8M的文件一般不成问题。但如果上传大于8M的文件,只还得设置以下参数:

在Resource Limits 区域: max_execution_time = 600

每个PHP页面运行的最大时间值(秒),默认30秒 max_input_time = 600

每个PHP页面接收数据所需的最大时间,默认60秒 memory_limit = 8m

每个PHP页面所吃掉的最大内存,默认8M

move_uploaded_file(“临时目录”,“新文件”)

这个临时目录是用$_FILES['userfile']['tmp_name']获取的

新文件 就是:

新文件目录+文件名

这个自己定义 。。。。。比如 我写个例子

$upfile="D:/aaa/" 目录名

$filename=$_FILES['userfile']['name'] 获取的原文件名

新文件就是 $newfile=$upfile.$filename

用.连接起来。

move_uploaded_file($_FILES['userfile']['tmp_name'],$newfile))

执行之后就会移动的D:/aaa/下面

你好,你找肯定是找不到的,因为当你脚本文件执行完毕之后,临时文件已经由系统删除了。

这是php自带的机制。

所以你得用php函数move_uploaded_file,把临时文件保存起来。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7929932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存