Upload ảnh lên server là 1 vấn đề đâu đầu với mọi lập trình viên .Câu hỏi làm sao người dùng up đúng dữ liệu ảnh,làm sao mình có thể lấy link ảnh đó lưu vào database .Hôm nay mình sẽ làm 1 ví dụ nho nhỏ hướng dẫn các bạn các bước nhé

Bước 1 : Tạo cơ sở dữ liệu lưu ảnh gồm id ,images lưu link ảnh và alt lưu nội dung ảnh

Tiếp theo chúng ta đến phần models kết nối với database bằng file Images.php trong mục commom với rules như sau

Comment lại đonạ images string thay nó bằng file bạn nhớ để file và extensions là các đuôi về ảnh nhé .Chỗ này tránh người dùng cố ý up shell lên server chúng ta

Tiếp theo trong models Images đó chúng ta tạo 1 function upload()

Để xử lý vấn đề tạo thư mục bạn có thể tạo trước hoặc  dùng FIleHelper như mình để tạo .Nếu như chúng ta là người nước ngoài thì ok rồi nhưng chúng ta thường lưu ảnh bằng tiếng việt nên cần chuyển ảnh up lên từ có dấu sang không dấu với function move_dau()

Giờ thì ok rồi đó .Tiếp theo chúng ta sẽ đến phần controller với file ImagesControllers trong phần frontend nội dung actionCreate()

Chúng ta sẽ lấy dữ liệu $model->images = UploadedFile::getInstance($model, ‘images’); đầu vào chưa xử lý thông qua việc $models->uploads() sẽ biến link ảnh thành không dấu và lưu vào folder uploads/user

Còn ở  file views chúng ta cần biến đổi 1 chút như sau

Các bạn nhớ thêm ‘options’ => [‘enctype’=>’multipart/form-data’] để form có thể upload dạng media lên nhé và images sẽ nhận dữ liệu dạng fileInput()

Ok vây là xong giờ xem thành quả nhé

Link demo : http://demo.hbsprogram.com/images/index .

Bạn nghĩ sao về việc upload ảnh trong yii2 ? Dễ hay khó .Hãy cho mình biết ý kiến của bạn về việc upload ảnh lên server trong yii2 nhé .Sẽ thật tuyệt vời hơn nếu chia sẻ bài viết này đến bạn bè .

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *