PHP liste kutusunu kullanarak dosyaları yükleyin

2 Cevap php

Ben php bir liste kutusundan dosya yüklemek istiyorum.

I <input type="file"> ki ben http://www.tizag.com/phpT/fileupload.php bulunan kullanarak bunu yapmak mümkün duyuyorum

Ama ben <select> bu <input type="file"> değiştirdiğinizde

ben bu şekilde çalışıyorum

<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" />
<select name="uploadedfile" id = "fileName" size="3" style="width: 100%">
<option id = "uploadedfile" value="c:\text.txt">c:\text.txt</option>
</select>
<input type="submit" value="Upload File" />
</form>

ve PHP kodu her iki durumda aynı kalır

<?php
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['value']); 


if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['value']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

?>

çalışmıyor ........

Regards Hemant

2 Cevap

Sadece güvenlik nedeniyle dosya yüklemek için <input type="file" /> kullanabilirsiniz. Bu giriş tür bir dosya seçme kutusu görüntüleyecek ve güvenli bir şekilde bir dosyayı seçmek için bir kullanıcı izin. Bir sunucu yapmak için çalıştığınız gibi upload keyfi dosyaları seçmek için izin güvenlik brüt ihlali olurdu.

Örneğin, ben senin <select> tabanlı seçenek uygulanan (ve o amele) söylüyorlar. Ben yüklemek için Windows parola dosyasını seçebilirsiniz. Ben önceden tanımlanmış yerlerde olan kötü dosyaların her türlü seçebilirsiniz.

Kenara toplam olarak, HTML aynı ada sahip iki öğesi vardır. Aslında sunucusuna gönderilir hangisinin tarayıcı ve sunucu üzerinde biraz bağımlı olacaktır. Siz gerçekten sadece aynı adla bir form öğesi istiyorum.

Ben bir dosyayı yüklemek için kullanıcı sormak kutusu açılan kullanıyorken bu işe gerekiyordu nasıl emin değilim.

"Kırmızı" vs "mavi" gibi özel seçimler için başka girdi olarak kullanılan benim deneyim menüleri (> seçeneğini) değil, aşağı bırakın.

Ancak, a) ilk dosya select elementinin dışında bir seçenek ve b) anlamına gelir, her ikisi de aynı isim verdi çünkü kurulum ile sorunları çalıştırmak için gidiyoruz php aldığında {[(0)] } değişken, (o bile bu noktaya oluyor ise) aynı anahtar ile iki öğe ile bir dizi oluşturmak için gidiyor.

Update

Matthew'un cevabı okuduktan sonra, ben şimdi c:/text.txt Eğer değer olarak belirledik fark. Dediği gibi, hiçbir büyük bir zaman var. Bunu teorik olarak tüm sabit disk (çok yavaş tabii) kopyalamak veya hatta yükleme ile Tamam olup olmadığını sormak kullanıcı ve bilgisayarınıza hiçbir şey almaz, bazı AJAX var olabilirdi.

Ben onlar kendi ucunda kullanabilirsiniz bir şey vardı çünkü sunucuda zaten bazı genel dosyayı "upload" için kullanıcı seçeneği sunan edildi nasılsa sanıyordum.