2009-08-27 17 views
5

Web sunucusundaki büyük dosyaların yüklenmesine ve saklanmasına izin veren bir uygulama üzerinde çalışıyorum. Şu anda http ile POSTed dosyaları işlemek için PHP kullanıyorum.Büyük dosya yüklemeleri

upload_max_filesize = 100M 
post_max_size = 100M 
memory_limit = 128M 
max_input_time = 6000 
max_execution_time = 6000 

LimitRequestBody için belirlenen herhangi apache direktifi var gibi değildir: Ben benim php.ini grubuna sahiptir. Dosya yükleme ilerlemesini izlemek için APC kullanıyorum. Bazı sebeplerden dolayı dosya yükleme her zaman tam olarak 50M'de durur.

Dosya yüklemeleri için http'un en verimli çözüm olmadığını biliyorum, ancak bu uygulamanın kullanıcı dostu olması gerekiyor ve anladığım kadarıyla ftp ile güvenlik duvarı sorunları var.

Herkesin benim indirimi tam olarak 50M'de durduran şey hakkında bana bir tavsiyede bulunup bulunamayacağını merak ediyorum. Bir çeşit konfigürasyon ayarı olmalı. Ayrıca, dosya yükleme için javascript/PHP ve http kullanarak çalışma yapmayı düşünmem gereken başka bir yol var mıdır. Java uygulamalarına baktım ve flaş kullanıyorum. Muhtemelen swfuploader kullanacak, ancak eğer benim uploadumun http ile başarısız olmasına neden olan bir sunucu konfigürasyonu varsa, bir java uygulamasının veya flash yükleyicinin bu konuda nasıl bir şey yapamayacağını anlamıyorum.

Bir noktada 1 GB'a kadar çok büyük dosyaları yüklememe izin verecek bir çözüm bulmayı umduğumu belirtmeliyim.

Ben dosyayı

$uploaddir = '/'.$_POST['upload_directory'].'/'; 
$uploadfile = $uploaddir . basename($_FILES['file']['name']); 

if (is_uploaded_file($_FILES['file']['tmp_name'])) { 
    if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) { some success code; } 

bundan daha biraz daha Belli ki almaya çok basit PHP kullanmak, ama bu yüklemeyi nasıl ele özü bu.

+0

Dosyaları nasıl yüklersiniz ve yükledikten sonra bunlarla ne yapıyorsunuz? –

+0

basit php is_uploaded_file() ve move_uploaded_file() komutları ve dosyaları $ _FILES – wallacer

cevap

4

başımı beceriyor birkaç saat sonra sorunu hallettim. Ön uç bileşenleri için Extjs kullanıyorum. Kullandığım yükleme widget'ında, POST isteğinin MAX_ UPLOAD _FILESIZE özelliğini 50M'ye ayarlayarak, başka bir yere koyduğum değeri fazla yazdıran kodlanmış bir ayar vardı. Şimdi beklendiği gibi çalışıyor. Yorumlarınız için teşekkürler.

2

Vhost'unuzdaki LimitRequestBody yönergesini ayarlayın.

http://www.cyberciti.biz/faq/apache-limiting-upload-size/

+0

'dan çekerek bu makalede, yükleme boyutunuzu sınırlamak için LimitRequestBody'in nasıl ayarlanacağı anlatılmaktadır. LimitRequestBody ayarlanmış değilse, o zaman zaten sınırsız değil mi? – wallacer

+1

http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestbody "İstemci isteği bu sınırı aşarsa, sunucu isteği yerine bir hata yanıtı döndürecektir" diyor. Tarayıcıda bir hata yanıtı almazsanız bu sorun değil ... – VolkerK

+0

ya, bir hata alamıyorum, bu yüzden sorun değil. Cevabı reddetmek için yeterli 'itibara' sahip değilim, ancak bu cevap hiç yardımcı olmuyor – wallacer

İlgili konular