我正在将TinyMCE与文件管理器响应文件管理器一起使用,其中包括DropZone.js。所有通过它上传文件的尝试都会失败,并返回403 Forbidden错误消息。
我尝试将url参数更改为例如"index.php"
和"/ui/scripts/libs/filemanager/upload_notexists.php"
。如果我在地址栏中键入它们,则“index.php”和原始url值可以在没有错误消息的情况下到达。 “notexists”url会返回404错误,因为它不存在。无论网址如何,上传始终返回403 Forbidden。
我尝试设置forceFallback: true
和method: "post"
/ method: "put"
。它仍然返回403 Forbidden。
这是初始化DropZone.js的代码:
var allowed_ext = new Array('jpg','jpeg','png','gif','bmp','tiff','svg','doc','docx','rtf','pdf','xls','xlsx','txt','csv','html','xhtml','psd','sql','log','fla','xml','ade','adp','mdb','accdb','ppt','pptx','odt','ots','ott','odb','odg','otp','otg','odf','ods','odp','css','ai','zip','rar','gz','tar','iso','dmg','mov','mpeg','mp4','avi','mpg','wma','flv','webm','mp3','m4a','ac3','aiff','mid','ogg','wav');
//dropzone config
Dropzone.options.myAwesomeDropzone = {
dictInvalidFileType: "Filtypen är ej tillåten.",
dictFileTooBig: "Den uppladdade filen överskrider max storleken.",
dictResponseError: "SERVER ERROR",
paramName: "file", // The name that will be used to transfer the file
maxFilesize: 100, // MB
url: "http://subdomain.example.com/ui/scripts/libs/filemanager/upload.php",
//url: "http://subdomain.example.com/index.php",
accept: function(file, done) {
var extension=file.name.split('.').pop();
extension=extension.toLowerCase();
if ($.inArray(extension, allowed_ext) > -1) {
done();
}
else {
done("Filtypen är ej tillåten.");
}
},
//forceFallback: true,
//method: "post"
};
我试过小< 1 kb图像以及多个更大的图像。
我还测试了上传这个基本代码的工作原理:
<form method="post" enctype="multipart/form-data">
Fil: <input type="file" name="filer[]" multiple>
<br>
<input type="submit">
</form>
这是phpinfo()的核心部分:
CorePHP Version 5.3.28
Directive Local Value Master Value
allow_call_time_pass_reference On On
allow_url_fopen On On
allow_url_include Off Off
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_globals_jit On On
auto_prepend_file no value no value
browscap no value no value
default_charset no value no value
default_mimetype text/html text/html
define_syslog_variables Off Off
disable_classes no value no value
disable_functions link,symlink,exec,shell_exec,system,passthru link,symlink,exec,shell_exec,system,passthru
display_errors Off Off
display_startup_errors Off Off
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl Off Off
error_append_string no value no value
error_log /dev/null /dev/null
error_prepend_string no value no value
error_reporting 30711 30711
exit_on_timeout Off Off
expose_php Off Off
extension_dir /usr/local/php53/lib/php/extensions/no-debug-non-zts-20090626 /usr/local/php53/lib/php/extensions/no-debug-non-zts-20090626
file_uploads On On
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors On On
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .:/usr/local/lib/php .:/usr/local/lib/php
log_errors Off Off
log_errors_max_len 1024 1024
magic_quotes_gpc Off Off
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
mail.add_x_header Off Off
mail.force_extra_parameters no value no value
mail.log no value no value
max_execution_time 500 500
max_file_uploads 2000 2000
max_input_nesting_level 64 64
max_input_time -1 -1
max_input_vars 8000 8000
memory_limit 512M 512M
open_basedir no value no value
output_buffering 1 1
output_handler no value no value
post_max_size 1600M 1600M
precision 12 12
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120
register_argc_argv On On
register_globals Off Off
register_long_arrays On On
report_memleaks On On
report_zend_debug On On
request_order no value no value
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from no value no value
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 800M 800M
upload_tmp_dir no value no value
user_dir no value no value
user_ini.cache_ttl 300 300
user_ini.filename .user.ini .user.ini
variables_order EGPCS EGPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
zend.enable_gc On On
编辑:我已设法打开共享主机上的错误日志记录。它没有任何表现。 :c(2014-07-15 18:48)
答案 0 :(得分:0)
假设您的文件未上传且您的网址正确,则问题似乎与响应文件管理器文件权限相关联(403:禁止访问)。
检查这些文件的所有者和父目录中的.htaccess。
答案 1 :(得分:0)
我的共享托管似乎会为包含403 Forbidden
的每个POST
数据字符串抛出"/../"
。作为安全功能......
当响应文件管理器将上传数据发送到upload.php时,它还会发送一个配置var,在我的情况下是"../../files"
,因此服务器向我扔了403。
This SO answer让我相信这可能是由mod_security引起的,这是一个用于apache /托管环境的防火墙。我已经联系了我的共享主机,并会在回复时更新答案。