Php ile doğrudan disk yazma

4 Cevap php

I would like to create an upload script that doesn't fall under the php upload limit. There might be an occasion where I need to upload a 2GB, or larger file and I don't want to have to change the whole server execution to above 32MB.

Php diske yazmak için doğrudan bir yolu var mı?

Eğer birisi bunu gerçekleştirmek için kullanmak ne yöntem önerebilir? Ben yığın taşması etrafında okudum ama oldukça yapmam için ne arıyorum bulamadım.

4 Cevap

Cevap basit, apache sonrası verileri işleme biçimi nedeniyle değil olabilir.

Daha büyük dosya yüklemeleri için kararlı konum ve hala arkaplanı için php kullanmak Eğer php yuva API kullanarak basit bir dosya yükleme alıcıyı yazmak ve bağımsız bir hizmet olarak çalıştırabilir. http://devzone.zend.com/article/1086#Heading8 bulunabilir Bazı iyi ayrıntılar

Though this is an old post, you find it easily via google when looking for a solution to handle big file uploads with PHP. I'm still not sure if file uploads that increase the memory limit are possible but I think there is a good chance that they are. While looking for a solution to this problem, I found contradicting sources. The PHP manual states

post_max_size: Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than upload_max_filesize. If memory limit is enabled by your configure script, memory_limit also affects file uploading. Generally speaking, memory_limit should be larger than post_max_size. (http://php.net/manual/en/ini.core.php)

... Hangi bellek sınırı yüklemek istediğiniz dosyanın daha büyük olması gerektiğini ima eder. Ancak, php.net de başka bir kullanıcı (alice-dsl dot com ragtime) şöyle der:

I don't believe the myth that 'memory_size' should be the size of the uploaded file. The files are definitely not kept in memory... instead uploaded chunks of 1MB each are stored under /var/tmp and later on rebuild under /tmp before moving to the web/user space.

I'm running a linux-box with only 64MB RAM, setting the memory_limit to 16MB and uploading files of sizes about 100MB is no problem at all! (http://php.net/manual/en/features.file-upload.php)

O çöp toplayıcı ile diğer bazı ilgili sorunları bildirir ama aynı zamanda nasıl çözülebileceğini belirtiyor. Eğer bu doğruysa, yüklenen dosya boyutu sıra hafıza limitini artırabilir. (Başka bir şey yüklenen dosyayı işlemek için olabileceğini, ancak, unutmayın - o belleğe yüklemek zorunda kalabilirsiniz)

Ben bu görev için php veya Python kullanılarak değerlendiriyorum çünkü ben kendimi PHP ile büyük dosya yükleme işleme denedim önce ben bu yazıyorum.

PHP'nin prizler etrafında dayalı bazı ilginç şeyler yapabilirsiniz. Eğer bir dinleme PHP daemon dosya yüklemek için Java uygulaması bir yazı düşündünüz mü? Bu muhtemelen en profesyonel hosting sağlayıcıları üzerinde çalışmaz, ama kendi sunucusu çalışıyorsa eğer, o iş yapabilir. Aşağıdaki sıraya göz önünde bulundurun:

  1. Applet starts up, sends a request to PHP to open a listening socket
    1. (Muhtemelen bu işi yapmak için Java temel bir web tarayıcısı yazmak zorunda kalırsınız)
  2. Java uygulaması dosya sisteminden dosyasını okur ve 1. adımda oluşturulan soket yoluyla PHP bunu yükler.

Değil bunu yapmak, ama sizin php.ini dosyasında PHP komut dosyası zaman aşımı devre dışı bırakırsanız, o zaman bir şey işi yapabilir temiz yolu.

PHP PHP ile sınırları izin verilenden daha büyük bir dosya yüklemek mümkün değildir, bu kadar basit.

Yapılabilecekler using a client-side technology - like Java dahil, emin Flash ve Javascript yapabilirsiniz eğer - "bölünme" küçük parçalar orijinal dosya için.