2016-05-14 2 views
0

Я создаю веб-приложение REST-full, используя Laravel 5.2 (для фонового) и AngularJS для шрифта. Я подключаюсь к серверу Laravel с помощью API. Теперь я наткнулся на следующую проблему: я могу правильно загрузить изображение, но удаление его снова не работает.Angular + Laravel Удалить файл

Файлы загружаются в папку Larvel public/images/uploaded /. Это мое Угловое обслуживание (запрос http, который был запущен при нажатии кнопки «Удалить») , где переменная imageToDelete является относительным путем к изображению.. До сих пор так хорошо, запрос запускается, и переменная imageToDelete заполняется.

 function deleteProfileImage(imageToDelete) { 
      return $http({ 
       method: 'DELETE', 
       url: '/api/pictures/' + imageToDelete 
      }) 
       .then(deleteProfileImageSuccess) 
       .catch(deleteProfileImageError); 

      function deleteProfileImageSuccess(response) { 
       $log.info('Deleting profile picture Success.'); 
       console.log(response); 
       return response; 
      } 

      function deleteProfileImageError(error) { 
       $log.info('Deleting profile picture failed because: ' + error.data); 
       return error; 
      } 
     } 

Этот угловой запрос HTTP вызывает запрос DELETE на следующую функцию в моем контроллере Laravel.

public function destroy($imageToDelete) 
{ 
    if(Storage::delete($imageToDelete)) { 
     return response()->json(['success' => 'success', 'message' => 'File Deleted']); 
    } else { 
     return response()->json(['error' => 'Deleting Image failed.']) 
      ->setStatusCode(Response::HTTP_BAD_REQUEST); 
    } 
} 

И здесь, хранение :: удалить ($ imageToDelete) ничего не делает. Он не удаляет файл с запросом «Угловой DELETE».

Некоторые вещи, которые я уже пробовал:

Работа с файлами :: удалить() вместо хранения :: удалить() Работа с тривиального зацепления() вместо О.П. Laravel фасадов; Отправка изображенияToDelete в качестве данных с помощью запроса DELETE HTTP (поэтому не в URL-адресе). Но все без успеха.

Как я могу заставить Laravel (PHP) удалить изображение?

Благодарим за помощь!

+0

Не очень понятно, какова ваша конкретная проблема. См. [Ask] – charlietfl

+0

Спасибо за ваш комментарий. Я обновил свой вопрос. Надеюсь, теперь будет ясно. – user3634184

+0

Нет .... не очень. Хороший вопрос требует немного усилий, чтобы правильно объяснить сначала проблему, а также предоставить любые сведения об устранении неполадок, которые вы можете, а также объяснить, какая часть работает, а что нет. – charlietfl

ответ

0

Вы можете попробовать

$storage = Storage::find($imageToDelete); 

if($storage->delete()) { 
    return response()->json(['success' => 'success', 'message' => 'File Deleted']); 
} 

или

if(Storage::destroy($imageToDelete)) { 
     return response()->json(['success' => 'success', 'message' => 'File Deleted']); 
    } 

или

$deleteImage = Storage::where('id', $imageToDelete)->delete(); 
if($deleteImage){ 
    return response()->json(['success' => 'success', 'message' => 'File Deleted']); 
} 
0

Вам может понадобиться, чтобы проверить путь к изображению. Когда вы используете хранилище laravel или файл facde, ваш путь к файлу должен быть абсолютным путем, например, public_path($imageToDelete)

Смежные вопросы