Saya ingin menerapkan pengunggahan file sederhana di halaman intranet saya, dengan pengaturan sekecil mungkin.
Ini adalah bagian HTML saya:
<input id="sortpicture" type="file" name="sortpic" />
<button id="upload">Upload</button>
dan ini adalah skrip jquery JS saya:
$("#upload").on("click", function() {
var file_data = $("#sortpicture").prop("files")[0];
var form_data = new FormData();
form_data.append("file", file_data);
alert(form_data);
$.ajax({
url: "/uploads",
dataType: 'script',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(){
alert("works");
}
});
});
Ada folder bernama "unggahan" di direktori root situs web, dengan izin perubahan untuk "pengguna" dan "IIS_users".
Ketika saya memilih file dengan formulir-file dan menekan tombol unggah, peringatan pertama mengembalikan "[objek FormData]". peringatan kedua tidak dipanggil dan folder "unggahan" juga kosong !?
Dapatkah seseorang membantu saya menemukan apa yang salah?
Juga langkah selanjutnya seharusnya, untuk mengganti nama file dengan nama yang dihasilkan sisi server. Mungkin seseorang dapat memberi saya solusi untuk ini juga.
Jawaban:
Anda memerlukan skrip yang berjalan di server untuk memindahkan file ke direktori unggahan.
ajax
Metode jQuery (berjalan di browser) mengirimkan data formulir ke server, lalu skrip di server menangani unggahan. Berikut ini contoh menggunakan PHP.HTML Anda baik-baik saja, tetapi perbarui skrip JS jQuery Anda agar terlihat seperti ini:
Dan sekarang untuk skrip sisi server, menggunakan PHP dalam hal ini.
upload.php : skrip PHP yang berjalan di server dan mengarahkan file ke direktori unggahan:
Juga, beberapa hal tentang direktori tujuan:
Dan sedikit tentang fungsi PHP
move_uploaded_file
, yang digunakan dalam skrip upload.php :$_FILES['file']['name']
adalah nama file yang diunggah. Anda tidak harus menggunakannya. Anda dapat memberikan file nama apa saja (server filesystem yang kompatibel) yang Anda inginkan:Dan akhirnya, perhatikan nilai-nilai PHP
upload_max_filesize
DANpost_max_size
konfigurasi Anda, dan pastikan file pengujian Anda tidak melebihi keduanya. Berikut ini beberapa bantuan bagaimana Anda memeriksa konfigurasi PHP dan bagaimana Anda mengatur max filesize dan memposting pengaturan .sumber
form_data.append
fungsi. Jadi saya mengubah skrip PHP untuk mencerminkan nama input formulir baru. Saya juga menarik respons skrip PHP ke peringatan sukses ajax untuk membantu debugging.$_FILES['file']
sumber
sumber
dan ini adalah file php untuk menerima file uplaoded
sumber
if (true)
dilakukan? Apakah selalu mengevaluasi kebenaran, jadi tidak berguna, bukan? Anda juga memiliki keriting ujung ekstra.Gunakan js murni
Nama file dimasukkan secara otomatis ke permintaan dan server dapat membacanya, 'tipe konten' secara otomatis diatur ke 'multipart / formulir-data'. Berikut adalah contoh yang lebih berkembang dengan penanganan kesalahan dan pengiriman json tambahan
Tampilkan cuplikan kode
sumber
Unggah File Terbaik Menggunakan Jquery Ajax Dengan Materialize Klik Di Sini untuk Mengunduh
Ketika Anda memilih gambar, gambar akan Dikonversi dalam basis 64 dan Anda dapat menyimpannya ke dalam basis data sehingga akan menjadi ringan juga.
sumber