コードに少し問題があります。イメージをajax経由でLaravelにアップロード5
コントローラで入力画像を受信できません。次に私はprint_r($input);
を使用します。空の配列を受け取ります。
私のJSコード:
$(document).on('click', '#photo-upload #upload-button', function(e) {
e.preventDefault();
$.ajax({
url: "/photo/upload/",
data: new FormData($("#photo-upload")[0]),
dataType:'json',
type:'GET',
processData: false,
contentType: false,
success: function (data) {
alert("succes!");
},
error: function (data) {
alert("error");
}
});
});
私形式:
<div class="full-cell">
<span>Название</span>
</div>
<div class="full-cell">
<input type="text" name="name" class="input-full" id="name">
</div>
<div class="full-cell">
<span>Описание</span>
</div>
<div class="full-cell">
<textarea name="description" id="description" cols="30" rows="3"></textarea>
</div>
<div class="full-cell">
<span>Загрузить в альбом:</span>
<select name="album" id="album">
@foreach ($albums as $album)
@include('partials.select._album_names')
@endforeach
</select>
</div>
<div class="file">
<input type="file" name="image" id="fileInput"/>
</div>
<div class="window-footer">
<button type="button" class="auth-button btn-sec" id="upload-cancel">Отмена</button>
<button type="submit" class="auth-button btn-advanced" id="upload-button" hidden="">Загрузить</button>
</div>
</form>
マイコントローラ:
public function store(Request $request) {
$user = Auth::user(); //Данные учетной записи
$input = Input::all();
$image = Input::file('image'); //Записываем картинку в переменную
print_r($input);
$filename = $user->username . '.' . $image->getClientOriginalExtension(); //Создаем новое имя файла
$date = date('Y-m-d'); //Получаем дату
$path = "user_data/photos/$date/"; //Создаем путь до оригинала
$thumbnail_path = "user_data/photos/$date/thumbnail/"; //Создаем путь до миниатюры
File::makeDirectory("$path", 0775, true, true); //Директория для фото
File::makeDirectory("$thumbnail_path", 0775, true, true); //Директория для миниатюры
$image->move($path, $filename); //Сохраняем картинку на сервер
$photo = "$path" . $filename; //Адрес фото
$thumbnail = "$thumbnail_path" . $filename; //Адрес миниатюры
File::copy($photo, $thumbnail); //копируюм фото в миниатюры
$image = Image::make($thumbnail)->fit(153,90)->save();
$new_photo = new Photo;
$new_photo->owner_id = $user->id;
$new_photo->name = $input['name'];
$new_photo->description = $input['description'];
$new_photo->photo = "/$photo";
$new_photo->thumbnail = "/$thumbnail";
$new_photo->album_id = $input['album'];
$new_photo->save();
}