Sorun yükleyerek birden fazla dosya

1 Cevap php

İşte kullanıyorum kod. Ben sorunun nerede olduğunu görmek gibi olamaz - onun dışında olanlar birden fazla dosya upload etmek anlamına geliyordu. Komik şey bazı zamanlar sadece bir dosya yükler ve sonra bir şey yüklemek olmaz olmasıdır.

Birisi bana bunun içine bakmak lütfen yardımcı olabilir ..

<pre><code>
<?php

/*** the upload directory ***/
$upload_dir= './uploads';

/*** numver of files to upload ***/
$num_uploads = 5;

/*** maximum filesize allowed in bytes ***/
$max_file_size  = 999999951200;

/*** the maximum filesize from php.ini ***/
$ini_max = str_replace('M', '', ini_get('upload_max_filesize'));
$upload_max = $ini_max * 99999991024;

/*** a message for users ***/
$msg = 'Please select files for uploading';

/*** an array to hold messages ***/
$messages = array();

/*** check if a file has been submitted ***/
if(isset($_FILES['userfile']['tmp_name']))
{
    /** loop through the array of files ***/
    for($i=0; $i < count($_FILES['userfile']['tmp_name']);$i++)
    {
        // check if there is a file in the array
        if(!is_uploaded_file($_FILES['userfile']['tmp_name'][$i]))
        {
            $messages[] = 'No file uploaded';
        }
        /*** check if the file is less then the max php.ini size ***/
        elseif($_FILES['userfile']['size'][$i] > $upload_max)
        {
            $messages[] = "File size exceeds $upload_max php.ini limit";
        }
        // check the file is less than the maximum file size
        elseif($_FILES['userfile']['size'][$i] > $max_file_size)
        {
            $messages[] = "File size exceeds $max_file_size limit";
        }
        else
        {
            // copy the file to the specified dir 
            if(@copy($_FILES['userfile']['tmp_name'][$i],$upload_dir.'/'.$_FILES['userfile']['name'][$i]))
            {
                /*** give praise and thanks to the php gods ***/
                $messages[] = $_FILES['userfile']['name'][$i].' uploaded';
            }
            else
            {
                /*** an error message ***/
                $messages[] = 'Uploading '.$_FILES['userfile']['name'][$i].' Failed';
            }
        }
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Multiple File Upload</title>
</head>

<body>

<h3><?php echo $msg; ?></h3>

<p>
<?php
 if(sizeof($messages) != 0)
 {
	foreach($messages as $err)
	{
		echo $err.'<br />';
	}
 }
?>
</p>

<form enctype="multipart/form-data" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $upload_max; ?>" />
<?php
$num = 0;
while($num < $num_uploads)
{
    echo '<div><input name="userfile[]" type="file" /></div>';
    $num++;
}
?>
<input type="submit" value="Upload" />
</form>

</body>
</html>

</code></pre>

1 Cevap

Öncelikle dosyaları taşımak için () kopyasını kullanmayın. Dosya gerçekten tarih ve engeller hareket gerekiyordu değildir dosyaları hareketli ise bu adı move_uploaded_file için bir işlev () Bu fonksiyon kontrolleri vardır.

2. baskı. Eğer yüklenme bazı hatalar tetikleyici olabilir beri, yüklenen her dosyanın hata değerine bakın.

Güncelleyin.

Onun çıplak kemikleri için çözüm aşağı kesim deneyin. Eğer bu çalışma sahip olana kadar hata bildirimini yap. Bu kodun tam et ve patates olduğunu ve olası hataları gidermek için önce bu bölümü iyi çalışan yardımcı olur bilmek yardımcı olacaktır.

2nd Güncelleyin.

İşte kod küçültülmüş bir versiyonu. Bu benim için çalışıyor.

http://cznp.com/1032712.phps

Ne de yapmak zorunda yazıyorum klasör benim web sunucusu için yazılabilir yapmak olun.