我正在尝试to get this而不是以一种很好的方式上传文件并将它们放在服务器上,而是转向一些将(希望)将它们放入MySQL数据库的php。我可以把它发布得很好,但不是返回任何有用的东西 - 或者成功 - 我得到:
Error SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
我不知道为什么。 Firebug告诉我它与php的谈话就好了。我不确定如何提取在php中以“files []”名称发布的文件,以单独识别和处理它们。我没有找到任何清楚的理解提取已发布数组的方法(我认为这是什么?)。通过不处理end方法会导致JSON.parse错误吗?或者之前还有其他事情发生了吗?
AJAX新手,现在很沮丧。帮助赞赏。
Originating form looks like this
Which pastes to this php(目前还不是很多)
答案 0 :(得分:0)
让jQueryFileUploader做你想做的事情的方法是为在服务器上完成所有工作的类创建子类。
如果您查看安装FileUploader的服务器上的文件结构,它看起来像这样
默认运行的是php
文件夹中的index.php,它实例化了UploadHandler类
?php
error_reporting(E_ALL | E_STRICT);
require('UploadHandler.php');
$upload_handler = new UploadHandler();
该类中的代码执行将文件放入磁盘等所有实际工作......
现在要让它做你想要的而不是默认的过程,你需要编写自己的功能,而不是默认功能或默认功能。
所以你需要做的是对默认类进行子类化,并覆盖真实类中你想要改变的工作中的哪个方法。
要更改上传文件的过程,您可以将此方法添加到MyUploadHandler类
error_reporting(E_ALL | E_STRICT);
require('UploadHandler.php');
class MyUploadHandler extends UploadHandler
{
/*
* Maintain our database:
* For each uploaded file, add an entry to the tbl_xxx
*/
protected function handle_file_upload($uploaded_file, $name, $size,
$type, $error, $index = null,
$content_range = null)
{
// this does what woudl have automatically been done
// before we subclasses anything
$file = parent::handle_file_upload($uploaded_file, $name, $size,
$type, $error, $index,
$content_range);
/* Now we add some extra processing
if the file uploaded with no problems
*/
if ( empty($file->error) ) {
$sql = "INSERT INTO tbl_xxx ( a,b, imgpath)
VALUES('x', 'y', '$file->name' )";
$db->query($sql);
}
return $file;
}
} // end of class
$upload_handler = new MyUploadHandler($site_params);