IE6 10Mb göre sorun yükleme dosyaları daha

2 Cevap php

Selam. Bu kod çoğu tarayıcılarda çalışır, ve hatta kısmen IE6. Daha az 10Mb (yaklaşık), ancak daha büyük bir şey dosyaları yükler. Kod bu dosyalar izin verildiğini belirtir.

Ayrıca, tüm dosya önce gözardı sunuculara aktarılması gibi görünüyor gibi görünüyor unutmayın.

Web sitesi yer almaktadır: www.mgxvideo.com/mgxcopy-alpha-3/ ve arabası bir öğe ekleyerek, ve sonra yükleme işlevini tıklayarak ulaşılabilir. Fikirler?

İşte şeklidir:

<form enctype="multipart/form-data" action="upload_files.php?order_id=<?php echo $_GET['order_id'] ?>" method="POST">
    <table style="width:100%">
        <tr>
        	<td valign="top">
        		<span class="style1">Choose a file to upload: </span> 
        	</td>
        	<td valign="top">
        		<input name="uploadedfile" type="file" />
        	</td>
        </tr>
    </table>
    <input type="submit" value="Upload File" />
    <input type="hidden" name="action" value="add"/>
    <input type="hidden" name="MAX_FILE_SIZE" value="100000000" />
</form>

Burada upload_files.php üstündeki bir çizgi:

$upload_output = upload_file($customer_id, $_REQUEST['action'], $_GET['order_id'], $_FILES);

Ve burada upload_file () kodu:

function upload_file($customer_id, $action, $upload_id, $FILES)
{
	$target_path = "uploads/";

	$target_path = $target_path . $customer_id . '_' . $upload_id . '_' . basename( $FILES['uploadedfile']['name']); 
	$str_output = '';

	if ($action == 'del' and file_exists($_POST['filepath']))
	{
		delete_file($customer_id, $_POST['filepath']);
		$str_output = '<span class="style1">File successfully deleted. If you are done uploading files, ' .
				'<a href="#" onclick="self.close();">click here</a> to close this window.</span>';
		setcookie("upload_out_txt", $str_output, time() + 300);
		setcookie("upload_out_b", "1", time() + 300);
	} else if ($action == 'add')
	{
		if (count_uploads($customer_id, $upload_id) >= 2)
		{
			$str_output = '<span class="style1">Problem: You have reached the maximum allowed uploads for this particular order. Please delete a file before continuing.</span>';
			setcookie("upload_out_txt", $str_output, time() + 300);
			setcookie("upload_out_b", "1", time() + 300);
		} else if (file_exists($target_path))
		{
			$str_output = '<span class="style1">Problem: A version of the file you are trying to upload already exists. Please delete the file from out servers before uploading again.</span>';
			setcookie("upload_out_txt", $str_output, time() + 300);
			setcookie("upload_out_b", "1", time() + 300);
		} else if (move_uploaded_file($FILES['uploadedfile']['tmp_name'], $target_path)) 
		{
			insert_to_database('uploaded_files', array($customer_id, $upload_id, 'now()', $target_path));
			$str_output = '<span class="style1">Success. The file was successfully uploaded. If you are done, <a href="" onclick="window.close();">click here to close the window</a></span>';
			setcookie("upload_out_txt", $str_output, time() + 300);
			setcookie("upload_out_b", "1", time() + 300);
		} else
		{
			$str_output = '<span class="style1">There was an error uploading the file, please try again!</span>';
			setcookie("upload_out_txt", $str_output, time() + 300);
			setcookie("upload_out_b", "1", time() + 300);
		}
	}



	return $str_output;
}

Ben bir düzeltme uygulamak için çalıştı sonra burada benim php.ini dosyası,:

extension_dir="/kunden/homepages/30/d93769495/htdocs/extensions";
extension=uploadprogress.so;
upload_max_filesize=150M;
post_max_size=210M;
max_input_time=1800;
file_uploads=1;
memory_limit=240M;
max_execution_time=1800;

2 Cevap

Bu bunu düzeltmek olmayabilir ama bir iş parçacığı üzerinde i okuyordu o IE6 dosya girdi önce MAX_FILE_SIZE satırı işlemek gerektiğini söyledi. Yani formun üstüne aşağıdaki satırı hareket deneyin:

<input type="hidden" name="MAX_FILE_SIZE" value="100000000" />

Eğer çalışırsa ben hiçbir fikrim yok ve IE6 bu sırayla ayrıştırılması için gerektirir, ama bu ben okuyordu iplik çözüm olduğunu söyledi budur.

Ayrıca php.ini maksimum dosya boyutu ve zaman aşımı kontrol edin.

Aşağıdaki ayarları kontrol php.ini:

  1. upload_max_filesize needs to be greater than 10 MiB (10M).

  2. post_max_size needs to be at least 40% greater than upload_max_filesize.

    Bu neden gerekli olduğu nedeni bazı eski kullanıcı ajanlar verilere% 37 yükü ekler base64 kodlaması kullanarak upload edecek olmasıdır. Mim başlıkları, diğer post parametreleri ekleyin, buna sahip nedenleri bol var daha yüksek upload_max_filesize.

  3. max_input_time , en az 900 (15 dakika) olması gerekir.

    Bunu dosya yüklemek için kullanıcı için yeterli zaman vermek istiyorum.