このリンクから DB を操作する手順に従いました: https://github.com/blueimp/jQuery-File-Upload/wiki/Working-with-databases。特に接続設定についてはすべてチェックしました。彼らは正しいです。しかし、「エラー{}」が表示され続けます。サーバーのログファイルとデバッグツールで手がかりを見つけようとしましたが、うまくいく可能性はありませんでした.
スナップショットは次のとおりです。
index.php
error_reporting(E_ALL | E_STRICT);
$sid=$_GET['sid'];
$caption=$_GET['title'];
$view="0";
require('UploadHandler.php');
$upload_handler = new UploadHandler();
さらに、「UploadHandler.php」も添付して、隠れたエラーがないかどうかを確認しました。
<?php
function __construct($options = null, $initialize = true, $error_messages = null) {
$this->options = array(
// mysql connection settings
'database' => '****',
'host' => 'localhost',
'username' => '****',
'password' => '****',
// end
'script_url' => $this->get_full_url().'/',
'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/',
'upload_url' => $this->get_full_url().'/files/',
'user_dirs' => false,
'mkdir_mode' => 0755,
'param_name' => 'files',
// Set the following option to 'POST', if your server does not support
// DELETE requests. This is a parameter sent to the client:
'delete_type' => 'DELETE',
'access_control_allow_origin' => '*',
'access_control_allow_credentials' => false,
'access_control_allow_methods' => array(
'OPTIONS',
'HEAD',
'GET',
'POST',
'PUT',
'PATCH',
'DELETE'
),
'access_control_allow_headers' => array(
'Content-Type',
'Content-Range',
'Content-Disposition'
),
.
.
.
.
.
I remain these lines untouched
.
.
.
protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
$index = null, $content_range = null) {
$file = new stdClass();
$file->name = $this->get_file_name($name, $type, $index, $content_range);
$file->size = $this->fix_integer_overflow(intval($size));
$file->type = $type;
if ($this->validate($uploaded_file, $file, $error, $index)) {
$clientid = $this->handle_form_clientid($file, $index);
$postid = $this->handle_form_postid($file, $index);
//Add the call to the database to add the data. Notice the three variables
//which are passed to the add_img function.
$this->add_img($file->name,$clientid,$postid);
//End of our additions. The code continues...
$upload_dir = $this->get_upload_path();
if (!is_dir($upload_dir)) {
mkdir($upload_dir, $this->options['mkdir_mode'], true);
}
$file_path = $this->get_upload_path($file->name);
$append_file = $content_range && is_file($file_path) &&
$file->size > $this->get_file_size($file_path);
if ($uploaded_file && is_uploaded_file($uploaded_file)) {
// multipart/formdata uploads (POST method uploads)
if ($append_file) {
file_put_contents(
$file_path,
fopen($uploaded_file, 'r'),
FILE_APPEND
);
} else {
move_uploaded_file($uploaded_file, $file_path);
}
} else {
// Non-multipart uploads (PUT method support)
file_put_contents(
$file_path,
fopen('php://input', 'r'),
$append_file ? FILE_APPEND : 0
);
}
$file_size = $this->get_file_size($file_path, $append_file);
if ($file_size === $file->size) {
$file->url = $this->get_download_url($file->name);
list($img_width, $img_height) = @getimagesize($file_path);
if (is_int($img_width) &&
preg_match($this->options['inline_file_types'], $file->name)) {
$this->handle_image_file($file_path, $file);
}
} else {
//$file->size = $file_size;
$file->upload_to_db = $this->add_img($sid,$file->name);
if (!$content_range && $this->options['discard_aborted_uploads']) {
unlink($file_path);
$file->error = 'abort';
}
}
$this->set_additional_file_properties($file);
}
return $file;
}
function query($query) {
$database = $this->options['database'];
$host = $this->options['host'];
$username = $this->options['username'];
$password = $this->options['password'];
$link = mysql_connect($host,$username,$password);
if (!$link) {
die(mysql_error());
}
$db_selected = mysql_select_db($database);
if (!$db_selected) {
die(mysql_error());
}
$result = mysql_query($query);
mysql_close($link);
return $result;
}
function add_img($sid,$whichimg,$caption,$view){
$add_to_db = $this->query("INSERT INTO gallery_pix (galx_sid,galx_file,galx_cap,galx_view) VALUES
('$sid','$whichimg','$caption','$view')") or die(mysql_error());
return $add_to_db;
}
function delete_img($delimg){
$delete_from_db = $this->query("DELETE FROM gallery_pix WHERE galx_sid='$delimg'") or die(mysql_error());
return $delete_from_db;
}
.
.
.
These lines remain untouched
.
.
.
public function delete($print_response = true) {
$file_name = $this->get_file_name_param();
$file_path = $this->get_upload_path($file_name);
$success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path);
if ($success) {
foreach($this->options['image_versions'] as $version => $options) {
if (!empty($version)) {
$file = $this->get_upload_path($file_name, $version);
if (is_file($file)) {
$this->delete_img($file_name);
unlink($file);
}
}
}
}
return $this->generate_response(array('success' => $success), $print_response);
}
}
データベースなしで写真をアップロードできますが、この場合、何時間も溺れてしまいます。私をここから出してください。