30/09/2018, 19:39

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ô

Đỗ Mạnh Hà viết 21:53 ngày 30/09/2018

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é

Jonly Tran viết 21:43 ngày 30/09/2018

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

Đỗ Mạnh Hà viết 21:48 ngày 30/09/2018

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

Đỗ Mạnh Hà viết 21:52 ngày 30/09/2018

Ý 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

Jonly Tran viết 21:47 ngày 30/09/2018

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

Phan Hoàng viết 21:43 ngày 30/09/2018

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.
Phan Hoàng viết 21:53 ngày 30/09/2018

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).

Phan Hoàng viết 21:43 ngày 30/09/2018

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.

Jonly Tran viết 21:40 ngày 30/09/2018

/Application/XAMPP/xamppfiles/htdocs/

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

tran tuan viết 21:51 ngày 30/09/2018

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”];

Bài liên quan
0