最近在做一个PHP 项目遇到一个上传插件问题,uploadify上传大写扩展名文件后台获取不到数据。
查询各种资料就准备放弃要用html5版本的uploadifive了,
哥是PHP方面的小白,所以请见谅。
如下是我做的改动,已解决此问题
【1】修改php.ini 文件
;因网络环境原因总是丢包,页面响应太慢,所以把此时间适当的调大
max_execution_time=600
; 每个脚本最大允许执行时间(秒),0 表示没有限制。
; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。
; 该指令仅影响脚本本身的运行时间,任何其它花费在脚本运行之外的时间,
; 如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。
; 在安全模式下,你不能用ini_set()在运行时改变这个设置。
max_input_time=600
; 每个脚本解析输入数据(POST, GET, upload)的最大允许时间(秒)。
; -1 表示不限制。
post_max_size = 128M
; 允许的POST数据最大字节长度。此设定也影响到文件上传。
; 如果POST数据超出限制,那么$_POST和$_FILES将会为空。
; 要上传大文件,该值必须大于upload_max_filesize指令的值。
; 如果启用了内存限制,那么该值应当小于memory_limit指令的值。
upload_max_filesize = 100M
; 允许上传的文件的最大尺寸。
【2】修改上传页面uploadify.php代码
<?php
/*
Uploadify
Copyright (c) 2012 Reactive Apps, Ronnie Garcia
Released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
// Define a destination
$targetFolder = '/uploads'; // Relative to the root
$verifyToken = md5('unique_salt' . $_POST['timestamp']);
if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
$targetFile = strtolower($targetFile);//保存文件,统一改成小写
// Validate the file type
$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);
//扩展名验证,把获取到的文件扩展名转换成小写验证
if (in_array(strtolower($fileParts['extension']),$fileTypes)) {
move_uploaded_file($tempFile,$targetFile);
echo '1';
} else {
echo 'Invalid file type.';
}
}
?>
是不是感觉很low?
编写此内容只为做一下记录,记录在此处我遇到了问题。