2009-04-07 42 views
6

Tôi có một trang web php với 15 trường. Người dùng sẽ sử dụng nó để tải lên hình ảnh. Tôi đã thử nghiệm điều này bằng cách tải lên 15 hình ảnh jpg, mỗi hình ảnh khoảng 2 M, không gặp bất kỳ sự cố nào. Vào ngày tôi khởi chạy, tôi sẽ chuyển trang web này sang một môi trường lưu trữ được chia sẻ Linux khác (vẫn không chắc chắn). Có một số môi trường lưu trữ web giới hạn kích thước của tổng số video tải lên trong một yêu cầu http không?PHP - Kích thước tải lên tổng cộng tối đa?

Trả lời

19

Có. Có (như xa như tôi có thể nhớ) ba hoặc lâu hơn các thiết lập cấu hình mà sẽ ảnh hưởng đến tải hạn chế kích thước:

  • upload_max_filesize, đặt một giới hạn trên kích thước của file được tải lên
  • post_max_size, làm hạn chế tổng số kích thước của dữ liệu đăng tải, bao gồm dữ liệu tập tin
  • max_input_time, trong đó hạn chế khoảng thời gian kịch bản được phép xử lý dữ liệu đầu vào, bao gồm giá trị posted

upload_max_filesize một giới hạn trên mỗi i tập tin cá nhân; tuy nhiên, max_post_size là giới hạn trên đối với toàn bộ yêu cầu, bao gồm tất cả các tệp được tải lên.

Môi trường lưu trữ khác nhau sẽ có các giá trị này được đặt khác nhau, điều này có thể ảnh hưởng đến khả năng của bạn khi triển khai.

+3

Khởi động lại Apache giúp sau khi bạn đã thực hiện tất cả những thay đổi này nhưng không có gì xảy ra – sjobe

+0

có những người khác, hãy xem câu trả lời của tôi bên dưới – docesam

0

Điều này sẽ không bình thường, nhưng tất nhiên, hãy kiểm tra với bất kỳ công ty lưu trữ nào bạn chọn. Nếu có giới hạn, nó chắc chắn sẽ cao hơn 30 MB.

+0

Giới hạn mặc định trên máy linux của tôi là 2 MB. – Benson

+0

Vâng, nhưng khi bạn mua lưu trữ, họ sẽ tăng điều đó, và nếu họ không bạn có thể yêu cầu họ. –

+0

Máy chủ Crappy không. – ThiefMaster

0

chỉ thị php.ini "post_max_size" nên giới hạn số lượng dữ liệu bạn có thể gửi trong một POST duy nhất. nếu bạn đăng 15 hình ảnh trong một bài đăng, tôi chắc chắn rằng vẫn được coi là một POST. Vì vậy, nó có thể là tốt để kiểm tra giá trị này trước khi đi sống.

4

Đó là cài đặt trong php.ini. Bạn có thể nhìn vào đầu ra của thông tin php cho trường có nhãn "upload_max_filesize". Để có được một trang thông tin php, tạo một file php với đoạn mã sau:

<?php phpinfo(); ?> 

This post tại php.net mang đến cho bạn mẫu mã để có được thông tin đó, và phần còn lại của trang là một kho tàng cấu hình php tùy chọn.

4

Có loạt các thiết lập PHP hạn chế quá trình tải lên:

  • file_uploads
  • upload_max_filesize
  • max_input_time
  • memory_limit
  • max_execution_time
  • post_max_size

Tôi khuyên bạn nên đọc trang này: http://www.radinks.com/upload/config.php

Mặc dù rất nhiều trong số này không giới hạn kích thước tải lên, chúng đặt giới hạn cho quá trình tải lên - ví dụ: nếu giới hạn bộ nhớ quá thấp, thì bạn sẽ gặp sự cố khi tải lên các tệp lớn cần lưu lại trong bộ nhớ trong một khoảng thời gian ngắn.

+0

'file_uploads',' memory_limit' và 'max_execution_time' không giới hạn kích thước tải lên tối đa. – Gumbo

6

Giới hạn tải lên được đặt qua php ini.Bạn có thể thử làm cho họ như vậy:

$post_max_size = ini_get('post_max_size'); 
$upload_max_filesize = ini_get('upload_max_filesize'); 
-1

Tôi đã nhìn thấy giải pháp tốt nhất here cho đến nay, và đây là đoạn code:

/** 
* Returns the maximally uploadable file size in megabytes 
* 
* @return string 
*/ 
function getMaxUploadSize() 
{ 
    $max_upload = (int)(ini_get('upload_max_filesize')); 
    $max_post  = (int)(ini_get('post_max_size')); 
    $memory_limit = (int)(ini_get('memory_limit')); 
    return min($max_upload, $max_post, $memory_limit);  
} 
0

Nếu bạn đang sử dụng nginx sau đó hãy chắc chắn rằng bạn có sau đây:

server { 
... 
    client_max_body_size 100M; 
.... 
} 
0

đây:

max_execution_time 
max_input_time 
memory_limit 
post_max_size 
upload_max_filesize 
max_file_uploads 
Các vấn đề liên quan