Lỗi upload file trong php

mọi người ơi, giúp mình với.
mình là form upload file với thẻ
<input type = "file" name = "anhminhhoa" id ="anhminhhoa" />
và mình xử lý là

Tên file ảnh đã lưu được trên database rồi. Nhưng trong thư mục upload hk có ảnh đó. và nó hk tìm được link ảnh đó.
thư mục của file upload và file xử lý

Mình ngĩ nó sai đường dẫn file vào thư mục upload. nên file ảnh hk vô. nhưng mình sửa hoài mà nó vẫn hk vô

1, Bạn nên dùng absolute path trong PHP bằng: $_SERVER['DOCUMENT_ROOT']

2, Bạn dùng hàm: move_uploaded_file($oldpath, $newpath); thay hàm copy() nhé

1 Like

mình sửa lại vậy cũng hk được bạn ơi

Một ví dụ đơn giản. Bạn có thể xem và làm theo nhé!

3 Likes

Ý mình là bạn dùng absolute path cho đường dẫn lưu ảnh là biến $dich của bạn đó. $_SERVER['DOCUMENT_ROOT'] + '/upload/' + $tenanh

1 Like

Mọi người giúp mình với, mình sửa hoài mà vẫn hk đc. Lúc trước mình có làm web khác làm y vậy nó đúng. Mà sao giờ. Làm lại sai như vậy

Bạn bật log php xem sao? Hoặc vào log của apache trong thư mục /var/log/apache/error.log.
Thực ra thì lệnh copy và move_uploaded_file đều ok.

Một số lỗi mình suy đoán có thể:

  • thư mục upload/ chưa được chmod để user www-data có thể ghi vào được. Bạn dùng lệnh ls -l xem thư mục đang được đặt quyền thế nào và thuộc quyền sở hữu người dùng nào.
  • trước khi được move thì file này được đặt trong thư mục tạm (do php config, mặc định là /tmp). Nhưng rất có thể php đã được config dùng thư mục tạm khác. Bạn cũng kiểm tra quyền của thư mục này xem.

Bạn đang code trên MAC ah? thưc mục /Application/XAMPP/xamppfiles/htdocs/ mặc định quyền của admin thôi. Bạn phải nhét user www-data vào group admin, hoặc chmod nó thành 777 (tốt nhất là 775).

Ngoài ra, khi code bạn nên bật error của php lên. Có thể set trong php.ini hoặc đặt vào ini_set(“display_errors”,1). Nhìn vào cái error cũng sẽ suy đoán được phần nào lỗi, chứ tắt ngóm đi thì … chịu, lỗi đến từ nhiều lý do lắm.

Hơn nữa, sau này khi đặt câu hỏi bạn paste cái error log cũng sẽ giúp mọi người sửa cho bạn dễ hơn.

3 Likes

mình làm được rồi. cám ơn bạn nhiều lắm. mình chmod 777 cho folder upload. thế nhưng mình chmod 777 cho cả thư mục htdocs thì hk cho phép

Sao mình bị lỗi hoài cái dòng này thế mọi người
Notice: Undefined index: anhminhhoa in C:\xampp\htdocs\websitetarot\admincp\modules\baiviet\xuly.php on line 14
dòng 14 của mình : $tenanh = $_FILES[“anhminhhoa”][“name”];

mình bị y trang bạn này nhung dung lazavel và xampp nhưng ko biết cmod 777 thu muc cho xampp như thế nào

Cậu thử tham khảo tài liệu này xem Trường:

2 Likes

Mình xài apache, theo kinh nghiệm được chia sẻ thì chỉ nên chmod 755 (hoặc 705) thôi, không nên 777, vì 777 là “mở cửa nhà, ai cũng vô được”

Screen Shot 2021-03-29 at 10.36.32

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?