@hollanditkzn

Как парсить url и получить все в json формате?

Мне дали подсказку как загружать изображение в определенное место, чтобы потом ее кадировать, но немного не пойму как это в коде прописать, особенно парсинг.
обратно получаешь путь до файла на сервере в json формате, парсишь(получаешь чистый урл до изображения), передаешь яваскрипту который обрабатывает картин

$("#fileForm").on("change",function(e){
						e.preventDefault();
						var fromData = new FormData($(this)[0])

						$.ajax({
							url: "unloade.php",
							type: "POST",
							data: fromData,
							processData: false,
							contentType: false,
							success: function (data){
								$("#imageDownload").text(data);
								alert("Отправлено");
							}
						});
					});

<?php 
	if (isset($_FILES["photo"])) {
		$file=$_FILES["photo"]["tmp_name"];
		json_encode($file);
		var_dump(json_encode($file));
	} else {
		echo "Файл не отправлен";
	}
?>

Подскажите я правильно иду или нет. Если нет то подскажите что нужно добавлять
  • Вопрос задан
  • 721 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вопрос не соответствует заголовку.
Парсить ссылку на php при помощи php.net/manual/ru/function.parse-url.php
На js Можно создать новыю ссылку <a> и потом использовать его методы https://developer.mozilla.org/en-US/docs/Web/API/H...

По поводу самого вопроса:
Идете почти правильно, но ряд шагов пропущен.

1. Нет проверки загруженного файла, может там и не картинка вовсе.
2. Отдавать tmp_name на клиент - бессмысленно. Сперва нужно сделать move_uploaded_file()
3. var_dump() не нужен. Отдавайте сам json. И к нему еще заголовки нужны, по хорошему.
4. Вместо echo "Файл не отправлен" лучше отдавать json с ошибкой. Вы же потом планируете ее через js показывать?

Пример standalone ф-ции проверяющей и сохраняющей картинку: pastebin.com/EGUN8mLK
Пример отправки json на клиент: pastebin.com/wzF0Ec7K

На счет статуса в json, псевдокод:
if ( /* успешно загружено */) {
    $response = [
      'status' => 'ok',
      'url' => $url
    ];
  } else {
    $response = ['status' => 'error'];
  }
  sendJson(response);

И на стороне клиента:
$.ajax({
  ...
  success: function (data){
  	if(data.status == 'ok') {
  		$('myPreview').attr('src', data.url)
		} else {
    	// показать ошибку
		}
  }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы