PHP dosyası yüklemek için çalışırken hata

6 Cevap php

Ben bugün her şey sabaha kadar gayet iyi çalışıyordu php sayfa duyuyorum. Şimdi sayfa seçilen herhangi bir dosya yükleyerek değil. Ben almaya devam hepsi aşağıdaki hata iletisi:

Uyarı: move_uploaded_file (upload/BrainStream_2009_06_25_23041.zip) [function.move-tarih-file]: hattında 146 \ xampp \ htdocs \ Vektörizasy \ admin \ jobs_edit.php C: Böyle bir dosya ya da dizin: failed to open stream

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Documents and Settings\Admin\Local Settings\Temp\php1B2.tmp' to 'upload/BrainStream_2009_06_25_23041.zip' in C:\xampp\htdocs\vectorization\admin\jobs_edit.php on line 146 File could not be uploaded. Please select a valid file. File Name:BrainStream.zip

Ben aşağıdaki kodu yazdım:

$uplfile = $_FILES['uploadfile']['name'];   
$upltmp = $_FILES["uploadfile"]["tmp_name"];
if(!empty($uplfile))
{		
	$ext = explode(".", $uplfile);

	$upload_date = date("Y_m_d"); //use this variable to change file name to avoid conflict with same name files
	$upload_dir = "upload/";

	$file_name=$ext[0]."_".$upload_date."_".rand(0, getrandmax()).".".$ext[1];

	(move_uploaded_file($upltmp,$upload_dir.$file_name))
 }

Ben XAMPP WinXP çalışan benim PC'de yüklü yığını var, 3 GB RAM ve Sabit disk alanı bol vardır.

Ne olursa olsun ben onu seçin hangi boyutu dosyası her zaman hata vermek.

Ne bu kodu yanlış olmalı?

6 Cevap

Son satırında İlginç sözdizimi. Hata problem doğrultusunda ve kaynak dosya veya hedef dizin ya da eksik olduğunu gösterir. Birincisi otomatik olarak oluşturulur yana, emin C:\xampp\htdocs\vectorization\admin\upload var ve yazılabilir olduğundan emin olun.

@ Phihag,

Ipucu için teşekkürler. Yeni geliştirici biri $ upload_dir değişken atama hata remove (.. /) tarafından vardı kaynağı okurken.

$upload_dir = "upload/"; //this is wrong

Aslında o kadar kuruldu

$upload_dir = "../upload/"; //this works but accidentally edited by another developer

Ne bir lamer öyleyim. Ben sorunu yerinde olamazdı.

Neyse teşekkürler benim sorunu çözmek için yardımınızı bir kez.

İki şeyden biri - ya

  1. Hiçbir yükleme dizini yok
  2. Hiçbir dosya php1B2.tmp yok

Bu apaçık ortada, ama php.ini kontrol çift emin olabilir

file_uploads = On
upload_tmp_dir = "C:\xampp\tmp"
upload_max_filesize = 64M

Ne yapmak için yararlı olabilir dosya olması için hızlı bir onay başarıyla yüklendi eg

switch ($_FILES["cv"]["error"])
{
    case UPLOAD_ERR_FORM_SIZE:
       // handle error
    case UPLOAD_ERR_INI_SIZE:
       // handle error
    case UPLOAD_ERR_PARTIAL:
       // handle error
    case UPLOAD_ERR_NO_FILE:
       // handle error
    case UPLOAD_ERR_CANT_WRITE:
       // handle error
}

Dosyaları yüklerken karşılaşabileceğiniz hataları işleme Onun daha iyi bir yolu.

Sorununuz ileri kullandığınızdan emin olabilir gibi görünüyor upload dizinin eğik ama windows bu bir ters eğik çizgi olurdu, ayrıca yükleme dizini komut dosyası göreli olduğundan emin olmak gerekir. değilse tam bir yol sağlar.

Bölü sorunu önlemek için iyi bir ipucu DIRECTORY_SEPARATOR sabit kullanmaktır