Php dosya upload

6 Cevap php

Kod şöyle görünür:

html

<form action="contact.php" method="post" enctype="multipart/form-data" onsubmit="return Validare();">

    <input type="text" name="nume" value="Nume" class="contact" id="Nume" onclick="if(this.value=='Nume')this.value='';" onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')this.value='Nume'" /><font color="red">*</font><br />
			<input type="text" name="email" value="Email" class="contact" id="Email" onclick="if(this.value=='Email')this.value='';" onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')this.value='Email'" /><font color="red">*</font><br />
			<input type="text" name="telefon" value="Telefon" class="contact" id="Telefon" onclick="if(this.value=='Telefon')this.value='';" onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')this.value='Telefon'" /><br />
			<textarea name="mesaj" rows="10" class="contact" id="Mesaj" onclick="if(this.value=='Mesaj')this.value='';" onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')this.value='Mesaj'">Mesaj</textarea>

<input type="file" name="file[]" />
<input type="file" name="file[]" />
<input type="file" name="file[]" />
<input type="submit" value="Trimite" />
</form>

php

for($i=0; $i<3; $i++){
if($_FILES["file"]["size"][$i] > 0){
	$rand = rand(10000, 99999);
	$name = $rand.rand(10000, 99999).$_FILES["file"]["name"][$i];
            $tmp_name = $_FILES["file"]["tmp_name"][$i];
	$target_path_big = "http://biroutraduceri.net/fisiere/".$name;
	move_uploaded_file($tmp_name, "fisiere/".$name);
}
}

javascript

<script>
function Validare(){
	if(document.getElementById("Nume").value.replace(/^\s+|\s+$/g,'') == "" || document.getElementById("Nume").value.replace(/^\s+|\s+$/g,'') == "Nume"){
		alert("Numele nu este valid!");
		return false;
	}
	if(document.getElementById("Email").value.replace(/^\s+|\s+$/g,'') == "" || document.getElementById("Email").value.replace(/^\s+|\s+$/g,'') == "Email"){
		alert("Email-ul nu este valid!");
		return false;
	}
	if(document.getElementById("Mesaj").value.replace(/^\s+|\s+$/g,'') == "" || document.getElementById("Mesaj").value.replace(/^\s+|\s+$/g,'') == "Mesaj"){
		alert("Mesajul nu este valid!");
		return false;
	}
	return true;
}
</script>

Ben teslim bastığınızda hiçbir şey. Dosya karşıya değildir.

Yanılıyorsam Neredeyiz??

6 Cevap

Bir izin sorunu olabilir, script "fisiere /". "Fisiere /" in $ isim yazma iznine sahip ve etmez. $ Isim gerçekten nerede olduğunu düşünüyorsun? Mutlak bir yol kullanmak isteyebilirsiniz.

Edit: Bir http url bir görüntü yazmak değil, bir yerel dosya-yolu onu yazmak gerekir ve emin php yolu / dizinine yazma izinlerine sahip olmanız gerekir

PHP kodu bir hata var, $ tmp_name atmadı.

Düzeltilmiş kod

for($i=0; $i<3; $i++){
    if($_FILES["file"]["size"][$i] > 0){
        $rand = rand(10000, 99999);
        $name = $rand.rand(10000, 99999).$_FILES["file"]["name"][$i];
        $target_path_big = "http://biroutraduceri.net/fisiere/".$name;
        move_uploaded_file($_FILES["file"]["tmp_name"][$i], "fisiere/".$name);
    }
}

$ Tmp_name şey hiçbir zaman başlatıldı.

$ Tmp_name $ _FILES ['file'] ['tmp_name'] [$ i] eşit olmalıdır;

You forgot to set up the variable $tmp_name. As in $tmp_name = $_FILES["file"]["tmp_name"][$i]; Otherwise, it seems ok as per my own tests.

Aksi takdirde, döngü, bir çift daha fazla baskı ve bir is_readable($tmp_name) sadece daha ince pin nokta denemek için, döngü içinde kontrol kaynağı "için" önce print_r($_FILES); atmak sorun.

i onsubmit="return Validare();" false dönüyor sanırım

neden) (zaman çalışacağız, yine de bu rand fonksiyonu kullanarak bu bence daha iyi olur

Eğer $_FILES['file'][$i]['size'] istiyorum