Php İle İlgili Bir Soru

Kodla Büyü

wertyu6

Süper Üye
Süper Üye
Mesajlar
1,794
Arkadaşlar, php de hazırlanmış güzel bir dosya upload scripti buldum ve kullanmak istiyorum yalnız scriptle ilgili bir sorum var
denedim düzgün bi şekilde çalışıyor yalnız bazı dosyalarda "There was an error during file upload!" hatası veriyor.
neye göre bu hatayı veriyor anlayamadım. dosya upload fonksiyonunda dosya boyutu için limit belirlenebiliyor bildiğim kadarıyla ama bu kodlarda öyle bişey de göremedim. sizce bu kod neye göre bu hatayı veriyor?

index.php dosyasının kodları şu

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Max's AJAX File Uploader</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />

<script language="javascript" type="text/javascript">
<!--
function startUpload(){
document.getElementById('f1_upload_process').style.visibility = 'visible';
document.getElementById('f1_upload_form').style.visibility = 'hidden';
return true;
}

function stopUpload(success){
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!<\/span><br/><br/>';
}
else {
result = '<span class="emsg">There was an error during file upload!<\/span><br/><br/>';
}
document.getElementById('f1_upload_process').style.visibility = 'hidden';
document.getElementById('f1_upload_form').innerHTML = result + '<label>File: <input name="myfile" type="file" size="30" /><\/label><label><input type="submit" name="submitBtn" class="sbtn" value="Upload" /><\/label>';
document.getElementById('f1_upload_form').style.visibility = 'visible';
return true;
}
//-->
</script>
</head>

<body>
<div id="container">
<div id="header"><div id="header_left"></div>
<div id="header_main">Max's AJAX File Uploader</div><div id="header_right"></div></div>
<div id="content">
<form action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startUpload();" >
<p id="f1_upload_process">Loading...<br/><img src="loader.gif" /><br/></p>
<p id="f1_upload_form" align="center"><br/>
<label>File:
<input name="myfile" type="file" size="30" />
</label>
<label>
<input type="submit" name="submitBtn" class="sbtn" value="Upload" />
</label>
</p>

<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>
</div>
<div id="footer"><a href="http://www.ajaxf1.com" target="_blank">Powered by AJAX F1</a></div>
</div>

</body>

upload.php dosyası

<?php
// Edit upload location here
$destination_path = getcwd().DIRECTORY_SEPARATOR;

$result = 0;

$target_path = $destination_path . basename( $_FILES['myfile']['name']);

if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
$result = 1;
}

sleep(1);
?>

<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>
 

Ekli dosyalar

Bunu ben de bir projemizde kullanıyorum. Hata ile karşılaşmadım.
Upload edilen dosya eğer klasöre taşınamazsa (@move_uploaded... başarısız olursa) bu hatayı alırsınız. Yazma izinleriyle ilgili bir problem yoksa, ya klasörü bulamıyordur ya da upload etmek istediğiniz dosyayla ilgili bir problem olabilir.
Dosya boyut ayarı bu scriptte yok. Eğer bilginiz varsa upload.php dosyasına boyutu kontrol edecek kodları koyabilir, javascript fonksiyonunu da düzenleyerek, dosya boyutu fazla olduğunda buna ilişkin hata vermesini sağlayabilirsiniz. Eğer kod bilginiz yoksa, ajax yerine klasik upload scriptlerinden birini kullanabilirsiniz. www.eburhan.com adresinde upload scriptini kullanabilirsiniz.
 
function resimyukle($userfile,$resimno,$dizin)
{
//dosya gönderilip gönderilmediginin kontrolü
$uzanti=array_reverse(explode(".",$userfile["name"]));

$upfile=$dizin.$userfile["name"];
if($userfile=="none")
{
return "<p class='uyariNS'>Kay&#305;t &#304;&#351;lemi <span class='uyariNH'>Dosya Belirtmediniz</span> için kayit gerçeklestirilemedi! </p>";

}
//dosya boyutunun kontrolü
if($userfile["size"]==0)
{
return "<p class='uyariNS'>Kay&#305;t &#304;&#351;lemi <span class='uyariNH'>Dosya Bos</span> oldugu için kayit gerçeklestirilemedi! </p>";
}
if($userfile["size"]>512000)
{
return "<p class='uyariNS'>Kay&#305;t &#304;&#351;lemi <span class='uyariNH'>Dosya Boyutu </span> 500KB'tan büyük oldugu için kayit gerçeklestirilemedi! </p>";
}
//dosya tipi
if(!$userfile["type"]=="text/plain")
{
return "dosya text dosyasi degil";
}
if(substr($userfile["type"],0,5)!="image")
{
return "<p class='uyariNS'>Kay&#305;t &#304;&#351;lemi <span class='uyariNH'>Dosya Resim dosyasi</span> olmadigi için kayit gerçeklestirilemedi! </p>";
}
$uploadfile = $dizin.$resimno.".".$uzanti[0];
if (!move_uploaded_file($userfile["tmp_name"],$uploadfile))
{
return "<p class='uyariNS'>Kay&#305;t &#304;&#351;lemi <span class='uyariNH'>Dosya Gönderimi Basarisiz</span> olmadigi için kayit gerçeklestirilemedi! </p>";
}

}


bu biraz daha fonksiyonel bi kod
 
Eğer büyük boyutlu dosyalarda takılıyorsa sunucudaki limite takılıyor olabilir...
 
Hata veren ve vermeyen dosyların boyutları , isimleri dosya uzantıları arasındaki ilişki ne
Dosya boyutu sorun olabilir.
 
BBNET
Geri
Üst