Я использую Jquery File Script , чтобы заменить мой существующий скрипт загрузки.В моем текущем скрипте я собираю необработанные данные изображения и отправляю их в свою базу данных, но, похоже, он не работает со скриптом загрузки jquery.
Вот как я использую его в закрытой функции: handle_file_upload
private function handle_file_upload($uploaded_file, $name, $size, $type, $error) {
$file = new stdClass();
$file->name = $this->trim_file_name($name, $type);
$file->size = intval($size);
$file->type = $type;
$error = $this->has_error($uploaded_file, $file, $error);
if (!$error && $file->name) {
$file_path = $this->options['upload_dir'].$file->name;
$append_file = !$this->options['discard_aborted_uploads'] &&
is_file($file_path) && $file->size > filesize($file_path);
clearstatcache();
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 = filesize($file_path);
if ($file_size === $file->size) {
if ($this->options['orient_image']) {
$this->orient_image($file_path);
}
$file->url = $this->options['upload_url'].rawurlencode($file->name);
foreach($this->options['image_versions'] as $version => $options) {
if ($this->create_scaled_image($file->name, $options)) {
$file->{$version.'_url'} = $options['upload_url']
.rawurlencode($file->name);
}
}
} else if ($this->options['discard_aborted_uploads']) {
unlink($file_path);
$file->error = 'abort';
}
$file->size = $file_size;
$file->delete_url = $this->options['script_url']
.'?file='.rawurlencode($file->name);
$file->delete_type = 'DELETE';
// ====== NEW DB CODE ======= //
$server = 'XXXX';
$user = 'XXX';
$pass = 'XXX';
$database= 'XXX';
$db = mysql_connect($server,$user,$pass);
$db_select = mysql_select_db($database,$db);
ob_start(); // Start capturing stdout.
imagejpeg($uploaded_file); // As though output to browser.
$image_bin = mysql_real_escape_string(ob_get_contents()); // the raw jpeg image data.
ob_end_clean(); // Dump the stdout so it does not screw other output.
$user_id = 5;
$title = '';
$caption = '';
$mapimage = 0;
$SQL = "INSERT INTO images VALUES (NULL, {$user_id}, '{$title}', "
. "'{$caption}', '{$image_bin}' )";
$mrh = mysql_query($SQL);
if (!$mrh) {
$res->st=false;
$res->error="Error creating image record: " .$SQL. mysql_error($dbh);
return $res;
}
// ====== END NEW DB CODE ======= //
}
else {
$file->error = $error;
}
return $file;
}
Оно вставляет изображение, но при просмотре изображения я получаю значок разбитого изображения, из-за которого я думаю, что он не вставляет то, что должно быть.Содержимое БД для изображения также очень маленькое (в байтах), что говорит мне, что я не вставляю то, что я думаю.
Есть идеи, чего мне не хватает?