PHP: dosya boyutu ile ilgili sorun

3 Cevap php

Ben burada biraz yardıma ihtiyacım var:

Ben bir HTML yükleme formundan bir dosya olsun. Ve ben $ Dosya bir "hedef" dosya var.

Bunu yaptığınızda:

copy($_FILES['binfile']['tmp_name'], $File);
echo '<hr>' . filesize($_FILES['binfile']['tmp_name']);
echo '<hr>' . filesize($File);

Her şey gayet iyi çalışıyor. Ben iki kez aynı sayıda olsun.

Ancak ben ilk çağrıyı sildiğinizde filesize(), I (sıfır) "0" olsun.

copy($_FILES['binfile']['tmp_name'], $File);
echo '<hr>' . filesize($File);

Herhangi bir öneriniz? Ben yanlış ne yapıyorum? Ben kopya boyutu alabilirsiniz önce Neden ben "orijinal" dosyasının dosya boyutu almak gerekiyor?

(.: Ben orijinal dosya için filesize() çağırmanız gerekir Ne sleep(), ne filesize() başka bir dosyanın arayarak yardım Yani ne olduğunu aslında.)

Sistem:

  • Apache 2.0
  • PHP 5.2.6
  • Debian Linux (Lenny)

3 Cevap

Bu dosya ne kadar büyük? Sen bir kopyasını yapıyor ve sonra hemen dosyayı belirten vardır. Bu sorun olabilir?

Yerleşik move_uploaded_file () fonksiyonu aynı davranışı veriyor mu?

Bu deneyin:

copy($_FILES['binfile']['tmp_name'], $File);
clearstatcache();
$filesize = $_FILES['binfile']['size'];
echo '<hr>' . $filesize;

Buna ne dersiniz:

copy($_FILES['binfile']['tmp_name'], $File);

clearstatcache();
while (empty(filesize($File)))
    sleep(2);

echo '<hr>' . filesize($File);

OR Bu deneyin:

copy($_FILES['binfile']['tmp_name'], $File);

clearstatcache();
while (!file_exists($File))
    sleep(2);

echo '<hr>' . filesize($File);