Я использую редактор Froala на своем сайте и разрешаю загружать изображения PNG, JPG, GIF. Мы используем библиотеку class.upload. php, доступную по адресу http://www.verot.net. Этот сценарий используется за пределами Froala для загрузки нескольких изображений. Мы также используем ssh2_sftp для загрузки изображений на удаленный сервер. Нет проблем с загрузкой нескольких изображений за пределами Froala.
Однако при загрузке во Froala мы получаем от 60 до 80% загруженного изображения, а остальные изображения белые.
Могу только догадываться, что это как-то прерывается, но не вижу где. Загрузка логи c выглядит следующим образом:
ini_set("memory_limit", "200000000"); // for large images so that we do not get "Allowed memory exhausted"
$connection = ssh2_connect('IP', SFTP_PORT);
ssh2_auth_password($connection, 'U', 'P');
$sftp = ssh2_sftp($connection);
if (!file_exists('ssh2.sftp://'.intval($sftp).'/'.IMAGE_FOLDER.'/'.$user_config->user_id)) {
ssh2_sftp_mkdir($sftp, '/var/www/'.IMAGE_FOLDER.'/'.$user_config->user_id);
}
$random_string = substr(str_shuffle("1234567890abcdefghijklmnopqrstuvwxyz"), 0, 10);
reset ($_FILES);
$temp = current($_FILES);
if (is_uploaded_file($temp['tmp_name'])){
// Sanitize input
if (preg_match("/([^\w\s\d\-_~,;:\[\]\(\).])|([\.]{2,})/", $temp['name'])) {
header("HTTP/1.0 500 Invalid file name.");
return;
}
// Verify extension
if (!in_array(strtolower(pathinfo($temp['name'], PATHINFO_EXTENSION)), array("gif", "jpg", "png", "jpeg"))) {
header("HTTP/1.0 500 Invalid extension.");
return;
}
$image = new \Pdo\Upload($temp);
$random_string = substr(str_shuffle("1234567890abcdefghijklmnopqrstuvwxyz"), 0, 10);
$image->file_new_name_body = "lpi_".$random_string;
if ($image->image_src_x > 400 || $image->image_src_y > 400) {
$image->image_resize = true;
$image->image_ratio = true;
} else {
$image->image_x = $image->image_src_x;
$image->image_y = $image->image_src_y;
}
if ($image->file_src_name_ext == 'gif' || $image->file_src_name_ext == 'bmp' || $image->file_src_name_ext == 'jpeg') {
$image->image_convert = 'jpg';
}
$image->Process('/var/www/admin/log/');
if ($image->processed) {
$remote_file = '/var/www/'.IMAGE_FOLDER.'/'.$user_config->user_id.'/'.$image->file_dst_name_body.'.'.$image->file_dst_name_ext;
$local_file = '/var/www/admin/log/'.$image->file_dst_name_body.'.'.$image->file_dst_name_ext;
ssh2_scp_send($connection, $local_file, $remote_file);
}
$image->Clean();
if (isset($local_file) && $local_file != '') {
unlink($local_file);
}
echo json_encode(array('link' => BASE_URL.'/'.IMAGE_FOLDER.'/'.$user_config->user_id.'/'.$image->file_dst_name_body.'.'.$image->file_dst_name_ext));
}