PHP Multi Upload

paristanbulima (228) 9 yıl önce sordu

Merhaba,

PHP ile masraf girişi uygulaması yapıyorum. Upload sisteminde kullandığım kodları boş bir deneme sayfasında çalıştırdığımda oluyor. Ancak kendi formumun içinde kullandığımda resmin yolunu veritabanına kaydetmiyor.

Acaba elinizde multi upload kodları var mı?

Toplam 2 cevap


paristanbulima (228) 9 yıl önce cevapladı

$gelen=$_FILES["imagesUpload"]['tmp_name'];
        $hedef="uploads/".$_FILES["imagesUpload"]['name'];

        if(is_uploaded_file($gelen))
        {
               move_uploaded_file($gelen,$hedef);
        }

        $ekle = mysql_query("insert into gelirler                     (kaydeden,firmaadi,aciklama,islem_tutari,islem_tarihi,fatura_tutari,fatura_tarihi,faturano,resim,odendi,cariid)         values('$kaydeden','$firmaadi','$aciklama','$tutar','$tarih','$faturatutar','$faturatarih','$faturano','$hedef','$odeme','$cariid')");
        

NOT: MULTI-UPLOAD İŞLEMİ GERÇEKLEŞTİRMİYOR. ONUN HAKKINDA BİR ÖNERİSİ OLAN VARSA ÇOK İYİ OLUR.

damlakoc 9 yıl önce

Nasıl çözdüğünüzü açıklarsanız, aynı sorunla karşılaşanlar da yararlanır.

brsozl 9 yıl önce

Sorularınızın altında sorunu çözdüm yazmak yerine nasıl çözdüğünüzü yazarsanız diğer kullanıcılar da yararlanabilir.

paristanbulima 9 yıl önce

Kodlarda bir yanlışlık yapmışım. Bu yüzden hata oluyormuş. Kodları tek tek incelediğimde hatanın farkına vardım. Kodları paylaşıyorum

alattin (17127) 9 yıl önce cevapladı

PHP ile multi file upload için Uploadify kullanabilirsiniz.

Uploadify buradan indirin

indirilen dosya içinde php multi file upload örneği var. Ben burayada kopyalayayım:

index.php

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>UploadiFive Test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="jquery.uploadify.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="uploadify.css">
<style type="text/css">
body {
	font: 13px Arial, Helvetica, Sans-serif;
}
</style>
</head>

<body>
	<h1>Uploadify Demo</h1>
	<form>
		<div id="queue"></div>
		<input id="file_upload" name="file_upload" type="file" multiple="true">
	</form>

	<script type="text/javascript">
		<?php $timestamp = time();?>
		$(function() {
			$('#file_upload').uploadify({
				'formData'     : {
					'timestamp' : '<?php echo $timestamp;?>',
					'token'     : '<?php echo md5('unique_salt' . $timestamp);?>'
				},
				'swf'      : 'uploadify.swf',
				'uploader' : 'uploadify.php'
			});
		});
	</script>
</body>
</html>

 

uploadify.php

<?php

// Define a destination
$targetFolder = '/uploads'; // Relative to the root

$verifyToken = md5('unique_salt' . $_POST['timestamp']);

if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
	$tempFile = $_FILES['Filedata']['tmp_name'];
	$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
	$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
	
	// Validate the file type
	$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
	$fileParts = pathinfo($_FILES['Filedata']['name']);
	
	if (in_array($fileParts['extension'],$fileTypes)) {
		move_uploaded_file($tempFile,$targetFile);
		echo '1';
	} else {
		echo 'Invalid file type.';
	}
}
?>

 

paristanbulima 9 yıl önce

Peki bunu veritabanına tek satır halinde kaydedebilir miyim?

alattin 9 yıl önce

Dosya upload ederken unutmamanız gereken şey, dosyanın adını veritabanına kaydedeceksiniz. dosyanın kendini değil. Yukarıdaki kodlar dosyayı sunucuya yükler. Bu işlemin sonunda sizin veritabanınıza yüklenen dosyanın adını kaydetmiş olmanız gerekir. En iyi pratik için dosyayı sunucuya upload etmeden ona tekil bir isim verin (random üretilmiş bir ad) daha sonra bu dosya adını veritabanına kaydedin.

paristanbulima 9 yıl önce

Tamam, orasını biliyorum. Dosya isimlerini bir satıra kaydetmem gerekiyor. İlgili alana aralarına virgül koyarak kaydetsem sorun olur mu? Daha da önemlisi kaydedebilir miyim? Ve daha sonra bu dosyaları listeleyecek olursam sorun yaşar mıyım?

alattin 9 yıl önce

herhangi bir seperator kullanabilirsiniz, virgün uygun. Daha sonra listelemek istediğinizde elbette virgül ile ayırdığınız dosyaları tekrar işlemden geçirerek ayırmanız gerekir. Ayrıca her dosya adını ayrı bir satirda, dosyalar diye bir tablonun içinde satır satır da tutabilirsiniz.

paristanbulima 9 yıl önce

Hmm. Teşekkürler bilgi için