Tôi đang làm việc để tải lên tệp qua trang web có thanh tiến trình sử dụng Valums file uploader. Hầu hết mọi thứ hoạt động tốt, nhưng tôi không thể thay đổi thư mục tmp mặc định, nơi tệp được lưu trữ trong khi tải lên.Cài đặt PHP tmp dir - Tải lên PHP không hoạt động
tập tin nên được lưu trữ trong thư mục /upload
và không có trong hệ thống mặc định /tmp
thư mục, bởi vì /tmp
được gắn trong một đĩa RAM có kích thước của nó bị hạn chế đến 4 MB và người dùng sẽ được tải lên file khoảng 10 MB.
Tôi đã tìm kiếm rất nhiều trang web nhưng không có giải pháp nào hoạt động. tôi đã thiết lập thư mục tạm trong php.ini
:
upload_tmp_dir =/upload
tôi đã thiết lập quyền cho /upload
dir, và apache là chủ sở hữu của các tập tin, vì vậy các thư mục là chắc chắn có thể ghi bằng PHP.
Tôi đã đặt đường dẫn đích trong trình tải tệp lên /upload
, vì tôi muốn các tệp được lưu trữ sau khi tải lên cũng trong thư mục này. Kết quả cuối cùng là các tệp nhỏ đang được tải lên thành công, nhưng tệp lớn hơn 4 MB không tải lên được — lý do duy nhất của hành vi này đến với tâm trí của tôi là các tệp được lưu trữ trong /tmp
khi tải lên. Để chắc chắn, tôi đã kiểm tra nó với sys_get_temp_dir()
và kết quả là /tmp
-so PHP bỏ qua chỉ thị php.ini của tôi hoặc có một số cách khác để đặt nơi tệp được lưu trữ trong khi tải lên.
Ồ và thông tin cuối cùng: open_basedir
không được đặt, do đó, quyền truy cập PHP vào đĩa chỉ bị giới hạn bởi quyền đối với tệp.
Bạn khởi động lại máy chủ của bạn (xin lỗi vì câu hỏi ngớ ngẩn này)? – soju
Không có câu hỏi ngớ ngẩn, chỉ là câu trả lời ngớ ngẩn :). Có, tôi đã thực hiện nó nhiều lần trong khi cố gắng giải quyết vấn đề và thử các giải pháp khác nhau. – Wookie88
Bạn đã kiểm tra xem php chưa được cài đặt là cgi mod chưa? (Từ doc: * Nếu thư mục được chỉ định ở đây không thể ghi được, PHP rơi trở lại thư mục tạm thời mặc định của hệ thống *) – soju