Riz*_*Riz 5 php codeigniter nginx
我有一个php网站,在codeigniter,它允许用户上传文件.上传适用于大多数文件.但是对于少数文件,nginx会抛出403 Forbidden错误.喜欢
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
</body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
Run Code Online (Sandbox Code Playgroud)
这是无法上载的示例.rb文件之一
# Sample code from Programing Ruby, page 58
string = <<END_OF_STRING
The body of the string
is the input lines up to
one ending with the same
text that followed the '<<'
END_OF_STRING
Run Code Online (Sandbox Code Playgroud)
如果我'<<'从此文件中删除,则上传有效.这种过滤在哪里发生?
我看过nginx错误日志,没有.我见过codeigniter日志,没有.事实上传请求没有到达我的Codeigniter控制器,因此必须在到达nginx之前被阻止?
这是Javascript中的上传代码
function upload(file, params) {
var formData = new FormData();
formData.append("Filedata", file);
$.each(params, function(key, value) {
formData.append(key, value);
});
var xhr = new XMLHttpRequest();
var action = "/upload/file";
xhr.upload.onprogress = function(e){
// show progress with e.loaded, e.total
};
xhr.onerror = function(e) {
// handle error
};
xhr.open("POST", action, true);
xhr.send(formData);
}
Run Code Online (Sandbox Code Playgroud)
在服务器端,我现在有简单的代码.
if( !isset($_FILES['Filedata']) || !file_exists($_FILES['Filedata']['tmp_name']) )
{
die('File not submitted.');
} else {
// Save file code is here
}
Run Code Online (Sandbox Code Playgroud)
尝试在你的 application/config/config.php 中进行更改
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
Run Code Online (Sandbox Code Playgroud)
经过
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-><';
Run Code Online (Sandbox Code Playgroud)
但请注意应用程序的安全性
| 归档时间: |
|
| 查看次数: |
713 次 |
| 最近记录: |