Tôi gặp sự cố sau, tôi có biểu mẫu HTML tải lên tệp có thêm một số thông tin. Nhưng nó cho phép để tải lên các tập tin mà chỉ ít hơn 10MB. Nhưng khi người dùng cố gắng tải lên thứ gì đó lớn hơn, cả mảng $ _POST và $ _FILES đều trống (tôi dự kiến $ _POST sẽ có một số giá trị và $ _FILES sẽ có một số giá trị nhưng sẽ cho biết có lỗi tải lên).
Có một số câu hỏi (rỗng $ _POST, $ _FILES) như thế, nhưng tôi không tìm thấy giải pháp nào hoặc giải thích cho nó.
dạng HTML:
<form enctype="multipart/form-data" method="post" action="upload.php">
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<input type="file" name="image" />
</p>
<p>
<input type="text" name="other_field" />
</p>
</form>
upload.php
print_r($_POST); // array()
print_r($_FILES); // array()
exit;
Nó hoạt động tốt, nếu kích thước tập tin là dưới 10MB (file giới hạn kích thước là 10MB), và tôi không muốn tăng nó, tôi chỉ muốn nắm bắt một lỗi trong PHP.
Cập nhật (lời giải thích/giải pháp) từ PHP trang web
Từ trang web PHP (tôi đã bỏ lỡ phần này): http://us.php.net/manual/en/ini.core.php#ini.post-max-size
Sets kích thước tối đa của bài dữ liệu cho phép. Cài đặt này cũng ảnh hưởng đến việc tải lên tệp. Để tải lên các tệp lớn, giá trị này phải lớn hơn upload_max_filesize. Nếu giới hạn bộ nhớ được kích hoạt bởi tập lệnh cấu hình của bạn, memory_limit cũng ảnh hưởng đến việc tải lên tệp. Nói chung, memory_limit phải lớn hơn post_max_size. Khi một số nguyên được sử dụng, giá trị được tính theo byte. Ký hiệu viết tắt, như được mô tả trong Câu hỏi thường gặp này, cũng có thể được sử dụng. Nếu kích thước của dữ liệu bài đăng lớn hơn post_max_size, các superglobals $ _POST và $ _FILES trống. Điều này có thể được theo dõi theo nhiều cách khác nhau, ví dụ: bằng cách chuyển biến $ _GET tới tập lệnh xử lý dữ liệu, nghĩa là, và sau đó kiểm tra xem $ _GET ['processed'] có được đặt hay không.
Bạn đã đọc http://php.net/manual/en/features.file-upload.php? –
vâng, nhưng có lẽ tôi đã bỏ lỡ điều gì đó ở đó. Cả hai mảng $ _FILES và $ _POST đều trống trong trường hợp này, và có vẻ như chúng sẽ cung cấp cho bạn một mã lỗi. –