2009-08-28 32 views
5

Khi cố gắng để truy cập mảng $_FILES, PHP sẽ trả về lỗi

"index Không xác định: hình ảnh".

Trong tệp php.ini, File Uploads được bật và mọi người dùng có thể viết trong thư mục /tmp. Trong biểu mẫu HTML, mã được đặt thành "multipart/form-data". Điều thú vị là, tên cơ sở cho tệp được tải lên in nên tôi tin rằng PHP đã thực sự nhìn thấy tệp, nhưng có một số vấn đề khi tải nó lên. Ai đó có thể đưa ra đề xuất về các giải pháp tiềm năng cho vấn đề này không? Nhân tiện, tôi đang sử dụng PHP5.

Snippets từ PHP file

echo "Picture=" . $_POST['picture'] . "<br/>"; 
$uploadedPic = $_FILES['picture']['tmp_name']; 

Form HTML

<form action="PHPFile.php" method="post" enctype="multipart/form-data"> 

<p> Picture </p> 
<input type = "file" id="picture" name="picture"/> 

</form> 
+2

bạn đã thử var_dumping $ _FILES chưa? – n1313

+1

Bạn có sử dụng Javascript để tuần tự hóa biểu mẫu của mình không? – JorenB

+3

là post_max_size và upload_max_filesize trong php của bạn.ini được đặt thành giá trị đủ lớn? – Zed

Trả lời

6

On gì dòng nào bạn nhận được cảnh báo rằng? Nếu nó là một với $_POST['picture'], sau đó logic của nó, bạn sẽ không tìm thấy dữ liệu tập tin tải lên trong $_POST, nó là trong $_FILES

+1

Trên sidenote .... bạn sẽ muốn kiểm tra xem $ _SERVER ['REQUEST_METHOD'] == 'POST' nếu bạn chỉ tải lên một tệp trong biểu mẫu của bạn và không gửi bất kỳ dữ liệu nào khác – SeanJA

1
echo "Picture=" . $_POST['picture'] . "<br/>"; 

Các POST biến

$_POST['picture'] 

không tồn tại, vì vậy có, nó sẽ đưa ra một lỗi không xác định.

0

Tôi không thể nhận xét, vì vậy tôi sẽ nói điều đó tại đây.

MAN, tiếng vọng này sẽ in tên tệp! Nó hoạt động! Anh ta nói nó hoạt động.

Điều thú vị đủ, basename cho in tập tin được tải lên vì vậy tôi tin rằng PHP đã thực sự nhìn thấy các tập tin [...]

Một gợi ý tốt: cố gắng var_dump các $_FILES và thêm ở đây đó là nội dung. Bạn có thể gặp lỗi vì tệp quá lớn hoặc một số thông tin hữu ích khác.

0

Bạn đang sử dụng báo cáo cấp độ hoặc báo cáo lỗi nào? error_reporting(E_ALL) sẽ bật báo cáo đầy đủ và có thể cung cấp cho bạn gợi ý. Như đã mô tả trước đây, hãy in một bản in $_FILES với var_dump() hoặc print_r() để xem thông tin cho tệp của bạn.

-2

thử thêm

<input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 

trước

<input type = "file" id="picture" name="picture"/> 
0

lol, một poster trước đó nói rằng khởi động lại máy chủ của họ cố định nó. tôi đã làm như vậy, và vì lý do nào đó nó hoạt động. tôi đã không thay đổi mã, và IIS reset không hoạt động. nó yêu cầu khởi động lại máy tính. đó là khoảng 2 giờ mất hoàn toàn.

Các vấn đề liên quan