Загрузка Ajax-файла «Произошла ошибка при загрузке ресурса» и сетевое соединение потеряно в Safari

Я пытаюсь загрузить файл и большой палец этого файла (используя жнец v2.3.0).
Этот код работает во всех других браузерах, но в Safari выдает ошибку.

Проблема описывается следующим образом:

  1. в браузере Safari на рабочем столе при загрузке файла произошла ошибка, указанная ниже, и использовался другой, чем браузер Safari, ошибки нет и выдается сообщение об успехе.

  2. Я тестирую оба способа, которые сначала загружают только обрезанное изображение в base64
    кодировать или также в BLOB-файле как файл с добавлением в formData, но в обоих случаях эта ошибка не устранена.

  3. Я также пытался загрузить изображение только тогда, когда произошла ошибка, иногда нет.

  4. если использовать Cropper Adjust, то произошла ошибка (это мое предположение)

Мой JS код для отправки формы

function addFile() {
$("#result").html("");
var myForm = $('#mainForm');
var formData = new FormData(myForm[0]);

$.ajax({
url: "action.php", // Url to which the request is send
type: "POST", // Type of request to be send, called as method
data: formData, // Data sent to server, a set of key/value pairs (i.e. form fields and values)
contentType: false, // The content type used when sending data to the server.
cache: false, // To unable request pages to be cached
processData: false, // To send DOMDocument or non processed data file it is set to false
dataType: "json",
success: function (data)            // A function to be called if request succeeds
{
$("#result").html(data.response + " : " + data.message);
},
error: function (res) {
$("#result").html(res.responseText);
}
});
return false;
}

код моего действия php

    <?php

$uploadThumbnailPath    = "dir";
$thumbImgData           = $_POST['thumbImg'];

$numberOfImages = 1;

$isImageUploaded = 0;
if ($thumbImgData != "") {
//thumbnail image uploading code
list($type, $thumbImgData) = explode(';', $thumbImgData);
list(, $thumbImgData) = explode(',', $thumbImgData);
$thumbImgData = base64_decode($thumbImgData);

$myTimeStamp      = "thumbImg_" . time() . uniqid();
$displayImageName = $myTimeStamp . ".png";
$dir              = $uploadThumbnailPath;
if (file_put_contents("$dir/$displayImageName", $thumbImgData)) {
$jpgFormatImageName = $myTimeStamp . ".jpg";
convertPNGtoJPG("$dir/$displayImageName", "$dir/$jpgFormatImageName", 238, 238, 238, 1);
if (file_exists("$dir/$displayImageName")) {
unlink("$dir/$displayImageName");
}
$isImageUploaded = 1;
}
} else {
$arrayResponse = array("response" => "thumbImg_BLANK", "message" => 'thumbImg_BLANK');
echo json_encode($arrayResponse);
exit;
}


for ($i = 1; $i <= $numberOfImages; $i++) {

if (isset($_POST["imgName$i"])) {
$itemImagesName = "";
} else {
$itemImagesName = $_FILES["imgName$i"]['name'];
}
if ($itemImagesName != "") {
$extension                   = pathinfo($itemImagesName, PATHINFO_EXTENSION);
$uploadNewFileNameWithoutExt = "image_" . md5($i . time());
$uploadDirPath               = "dir/p/";

$uploadNewFileName[$i]     = $uploadNewFileNameWithoutExt . '.' . $extension;
$uploadNewFileWithPathName = $uploadDirPath . $uploadNewFileName[$i];
$mesUpload                 = uploadImageFileOnServer("imgName$i", $allowedExts, $maxFileSize, $uploadNewFileWithPathName);
}
}

$itemImages = implode("#:#", $uploadNewFileName);

$thumbnailImageName = "default_thumbnail.png";
if ($isImageUploaded == 1) {
$thumbnailImageName = $jpgFormatImageName;
}

if ($mesUpload == "FILE_UPLOADED") {
$arrayResponse = array("response" => "OK", "message" => "OK UPLOAD SUCCESS");
echo json_encode($arrayResponse);
exit;
} else {
/* $mesUpload */
$arrayResponse = array("response" => "FILE_FAILED", "message" => "FAIL TO UPLOAD");
echo json_encode($arrayResponse);
exit;
}
?>

Вот скриншоты ошибки того
это изображение, где

снимок экрана 1

снимок экрана 2

Пожалуйста, помогите мне решить эту проблему. Я озадачен этой ошибкой, и у меня нет никакой идеи, чтобы решить эту проблему.
Если кто-то хочет использовать, я загружаю образец кода в Интернете, нажмите на ссылку ниже
https://tamapev.000webhostapp.com/upload-img/

0

Решение

Проблема заключается в том, что вы отправляете данные формы не на ту страницу, сначала определите, находится ли action.php в корневом каталоге или в каталоге с именем upload-img. Затем отправьте запрос на данную страницу.

Далее для ошибки, которая говорит: «Произошла ошибка при загрузке ресурса», чтобы увидеть, что является фактической ошибкой, на вашем первом скриншоте есть маленькая кнопка на панели, которая говорит «Ответ», нажмите на нее и измените ее на « JSON»

Если «action.php» находится в «upload-img», вам нужно изменить

url: "action.php", в url: "/upload-img/action.php",

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector