Daftar dan Belajar Sekarang!

Gambar dari storage laravel tidak muncul

foto yenimulya
47 Kontribusi 2 Coto
5 hari yang lalu
permisi kak saya mau tanya, saya upload file foto/gambar di laravel dengan storage , foto sudah tersimpan namun tersimpannya di 2 tempat yaitu public/storage/files dan di storage/app/public/files , ketika saya proses klik upload terdapat kesalah seperti ini https://i.imgur.com/zVSeaRV.jpg , tetapi foto bisa tersimpan , lalu saya ingin tampilkan foto tersebut di foto profil namun tidak muncul seperti ini https://i.imgur.com/ZzKSh4n.jpg , untuk coding controller seperti ini
public function update_profile(Request $request)
    {
        // $url = Storage::url('kaktus.png');

        $valid = Validator::make($request->all(), [
            // 'name' => 'required',
        ]);

        if ($valid->fails())
        {
            return redirect()->back()
                ->withErrors($valid)
                ->withInput();
        }else{ 
            $id = Auth::user()->id;
            $admin = Admin::find($id);
            $admin->name = $request->input('name');
            $file       = $request->file('avatar');


            $admin->name = $request->input('email');
            $admin->name = $request->input('password');
            $admin->name = $request->input('remember_token');
            $admin->name = $request->input('created_at');
            $admin->name = $request->input('upadated_at');

            // -------
            // $uploadedFile = $request->file('avatar');
            // $path = $uploadedFile->store('public/files');
            // $admin = Admin::create([
            //         'name' => $request->title ?? $uploadedFile->getClientOriginalName(),
            //         'avatar' => $path
            // ]);
               
          
            if(!empty($file)){
                $fileName   = date('YmdHis').''.$file->getClientOriginalName();
                 $uploadedFile = $request->file('avatar');
                $path = $uploadedFile->store('public/files');
                  $admin = Admin::create([
                    'name' => date('YmdHis').''.$file->getClientOriginalName(),
                    'email' => '',
                    'password' => '',
                    'remember_token' => '',
                    'created_at' =>'',
                    'updated_at' => '',
                // $fileName   = date('YmdHis').''.$file->getClientOriginalName(),

                    'avatar' => $path
            ]);
               
            }
            if($admin->save()){
                Session::flash('flash_message', 'profile berhasil di update');
                return redirect()->back();
            }
            else{
                $valid = "harap isian jangan kosong";
                return redirect()->back()
                    ->withErrors($valid)
                    ->withInput();
            }
        }  
    }
untuk route seperti ini
Route::post('/admin/update_profile', 'admin\AdminController@update_profile');
untuk view nya di main.blade.php (profil atas )
<img src="	public/files/{{ Auth::user()->avatar }} " class="img-responsive img-circle user-photo" alt="User Profile Picture">
untuk di coding view di form update nya seperti ini :
<div class="profile-section">
					<h2 class="profile-heading">Profile Photo</h2>
					<div class="media">
						<div class="media-left">
							{{-- <img id="pic" src="{{ asset('assets/img/user/'.Auth::user()->avatar.'')}}" class="user-photo media-object" alt="User"> --}}
							<img id="pic" src="{{ asset('storage/app/public/files'.Auth::user()->avatar.'')}}" class="user-photo media-object" alt="User">
						</div>
						<div class="media-body">
							<p>Upload your photo.
								<br> <em>Image should be at least 140px x 140px</em></p>
							<button type="button" class="btn btn-default-dark" id="btn-upload-photo">Upload Photo</button>
							<input type="file" id="filePhoto" class="sr-only" name="avatar" onchange="loadFile(event)">
							{{-- new --}}
							{{-- <input type="file" id="filePhoto" class="sr-only" name="file" onchange="loadFile(event)"> --}}
						</div>
					</div>
				</div>
bagaimana agar foto bisa tampil ya kak? mohon pencerahannya kak
  • coba disertakan juga yang tersimpan di database itu apa? apakah sudah ada .jpg atau belum? mungkin bisa juga di inspect elemen biar tau kenapa tidak keluar foto nya - ghonijee
  • oya kak gambar terupload dan tersimpan di folder , namun di database tidak berubah kak ternyata, mohon solusinya kak, berarti controller saya harus di benahi seperti apa kak @ghonijee . mohon solusinya kak - yenimulya

Login untuk tulis komentar


Jawaban
foto verified logo kikimf
56 Kontribusi 32 Coto
5 hari yang lalu
1. Terakit error itu karena agan masukin data email pada field 'email' itu duplicate artinya email yang agan masukan itu sudah pernah diinput ke database sebelumnya 2. Terkait memunculkan gambar
src="{!! asset('files/'.Auth::user()->avatar) !!}"
  • tetap tidak bisa gan ndak muncul gambarnya gan @kikimf - yenimulya
  • coba inspect element gan, terus lihat src nya jadinya kemana itu, copy src nya di tab baru, muncul ga gambar nya - kikimf

Login untuk tulis komentar


foto bosque
99 Kontribusi 39 Coto
5 hari yang lalu
udah di link blom ke public, klo blom di link dulu biar bisa diakses
//link storage ke public
php artisan storage:link
semoga berhasil
  • sudah bang, sudah tak buat di artisan command nya bang, apakah penamaan file nya bang? atau codingan saya ada yang salah @bosque ? - yenimulya
  • saya asumsikan, kamu nyimpannya dibawah public/files/. untuk lengkapnya <img src="asset('storage/files/'.{{ Auth::user()->avatar)}}" /> - bosque
  • file terupload di storage/app/public/files kak , sudah tak coba tadi pakai ini <img src="{{ asset('storage/files/'.Auth::user()->avatar )}} " class="img-responsive img-circle user-photo" alt="User Profile Picture"> tapi belum bisa @bosque - yenimulya

Login untuk tulis komentar


foto zergz
52 Kontribusi 35 Coto
4 hari yang lalu
Halo, sperti kata @bosque, sy juga asumsikan file tersimpan di "storage\public\nama_folder\nama_file" atau "storage\public\nama_file"
//Apabila belum, lakukan perintah artisan berikut
php artisan storage:link
Pada bagian folder public akan dibuat shortcut folder "storage", lalu untuk menghubungkan dengan view ada berbagai cara (sy asumsikan, sperti penjelasan bahwa anda menggunakan folder "files") 1. dengan "url"
<img src="{{ url('public/storage/files/' . Auth::user()->avatar) }}">
2. dengan "asset" 3. dengan "public_path" 4. dengan "storage_path" Ane sampe saat ini lebih sering menggunakan cara nomor 1, dengan "url". Untuk masalah file upload tersimpan di 2 tempat, tidak perlu khawatir, karena pada path "public/storage/files" merupakan shortcut dari "storage/app/public/files". Apabila menggunakan storage, ada baiknya jika https://laravel.com/docs/5.7/filesystem dibaca untuk lebih jelasnya. Smoga bisa membantu gan.
  • kak foto terupload dan tersimpan di folder storage/files , namun di database tidak berubah kak, mohon solusinya kak @zergz - yenimulya

Login untuk tulis komentar


foto yenimulya
47 Kontribusi 2 Coto
2 hari yang lalu
kak foto terupload dan tersimpan di folder storage/files , namun di database tidak berubah kak (foto yang tersipan tidak bisa ter rename kak) mohon solusinya kak @zergz , ghonijee

foto zergz
52 Kontribusi 35 Coto
2 hari yang lalu
Ane asumsikan pertanyaan sbelumnya mengenai menampilkan gambar sdh berhasil. Sedangkan untuk pertanyaan mengenai upload, contoh (nama file dan controller hanya contoh saja, nanti tinggal disesuaikan)
namespace App\Http\Controllers;

use Carbon;
use File;
use Storage;

class NamaController extends Controller
{
    public function update(Request $request)
    {
        $admin = Admin::findorFail(Auth::user()->id);
        if( $request->hasFile('avatar') ){
            $file = $request->file('avatar');
            $ext = $request->avatar->getClientOriginalExtension();
            $filename = Carbon::now() . '.' . $ext;
            $place = 'public/files/' . $filename;
            Storage::put($place, File::get($file));
            $admin->avatar = $filename;
        }
        $admin->save();
        return redirect()->back();
    }
}
Smoga bisa membantu.
  • Carbon::now() itu apa ya kak? kok eror ditempat saya kak, oya sebenarnya file sudah tersimpan di folder storage/public/files , hanya di database tidak tersimpan, dan foto yang berhasil masuk difolder tsb tidak bisa di ganti nama, apakah controller untuk $filename saya kliru @zergz - yenimulya

Login untuk tulis komentar


foto yenimulya
47 Kontribusi 2 Coto
2 hari yang lalu
kak @zergz sudah saya ganti seperti ini di controller nya
public function update_profile(Request $request)
    {
        // $url = Storage::url('kaktus.png');

        $valid = Validator::make($request->all(), [
            // 'name' => 'required',
        ]);

        if ($valid->fails())
        {
            return redirect()->back()
                ->withErrors($valid)
                ->withInput();
        }else{ 
            $id = Auth::user()->id;
            $admin = Admin::find($id);
            $admin->name = $request->input('name');
            $file       = $request->file('avatar');


          
            if(!empty($file)){
                // $fileName   = date('YmdHis').''.$file->getClientOriginalName();
                //  $uploadedFile = $request->file('avatar');
                // $path = $uploadedFile->store('public/files' . $fileName);
               
                $file = $request->file('avatar');
                $ext = $request->avatar->getClientOriginalExtension();
                $filename = Carbon::now() . '.' . $ext;
                $place = 'public/files/' . $filename;
                Storage::put($place, Admin::get($file));
                $admin->avatar = $filename;
                // File::make($file)->resize(800,600)->save($path);
                // $file['avatar'] = $fileName;

            }
            if($admin->save()){
                Session::flash('flash_message', 'profile berhasil di update');
                return redirect()->back();
            }
            else{
                $valid = "harap isian jangan kosong";
                return redirect()->back()
                    ->withErrors($valid)
                    ->withInput();
            }
        }  
    }
tetapi eror seperti ini https://i.imgur.com/mWbzLWs.jpg

foto zergz
52 Kontribusi 35 Coto
2 hari yang lalu
1. Carbon::now untuk menggantikan date('YmdHis') yang ada di controller kamu sbelumnya, fungsinys sama saja, untuk tanggal dan waktu. Untuk menjalankan Carbon, pada bagian atas, gunakan "Use Carbon;" atau bisa juga "\Carbon\Carbon::now()" 2. Untuk error kamu
// coba ubah
$id = Auth::user()->id;
$admin = Admin::find($id);
// menjadi
$admin = Admin::where('id', Auth::user()->id)->get();
// atau bisa juga
$admin = Admin::where('id', Auth::user()->id)->first();
// atau
$admin = Admin::findorFail($id);
Smoga bisa membantu.


Login untuk diksusi di forum sekolah koding