nullcoder Dosyayı karşıya yükleme dizinine taşımak için sunucuda çalışan bir komut dosyasına ihtiyacınız vardır. JQuery ajax yöntemi (tarayıcıda çalışan) form verilerini sunucuya gönderir, ardından sunucudaki bir komut dosyası yüklemeyi yönetir. İşte PHP kullanan bir örnek.
JS jQuery komut dosyanızı şöyle görünecek şekilde güncelleyin:
$('#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: 'upload.php', // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(php_script_response){
alert(php_script_response); // display response from the PHP script, if any
}
});
});
Ve şimdi sunucu tarafı komut dosyası için, bu durumda PHP kullanılıyor. upload.php: sunucuda çalışan ve dosyayı karşıya yükleme dizinine yönlendiren bir PHP betiği:
<?php
if ( 0 < $_FILES['file']['error'] ) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
}
?>
Ayrıca, hedef dizin hakkında birkaç şey:
- Doğru sunucu yoluna sahip olduğunuzdan emin olun, yani, PHP komut dosyası konumundan başlayarak, karşıya yükleme dizininin yolu nedir ve
- Yazılabilir olduğundan emin olun.
Ve upload.php komut dosyasında kullanılan PHP işlevi move_uploaded_file hakkında biraz bilgi:
move_uploaded_file(
// this is where the file is temporarily stored on the server when uploaded
// do not change this
$_FILES['file']['tmp_name'],
// this is where you want to put the file and what you want to name it
// in this case we are putting in a directory called "uploads"
// and giving it the original filename
'uploads/' . $_FILES['file']['name']
);
$ _FILES ['dosya']['ad']
dosyanın yüklendiği anda adıdır. Bunu kullanmak zorunda değilsin. Dosyaya istediğiniz adı (sunucu dosya sistemi uyumlu) verebilirsiniz:
move_uploaded_file(
$_FILES['file']['tmp_name'],
'uploads/my_new_filename.whatever'
);
Son olarak, PHP upload_max_filesize VE post_max_size yapılandırma değerlerinizi öğrenin ve test dosyalarınızın ikisini de aşmadığından emin olun. İşte PHP yapılandırmasını nasıl kontrol edeceğinize ve maksimum dosya boyutunu ve gönderi ayarlarını nasıl belirlediğinize dair bazı yardım.
Kaynak: https://stackoverflow.com/a/23981045
Veya şuraya göz atınız: https://www.cloudways.com/blog/the-basics-of-file-upload-in-php/
İyi çalışmalar.