PDA

View Full Version : مشکل در آپلود توسط php



mahdyari77
دوشنبه 23 آبان 1390, 23:25 عصر
سلام من میخواستم یک صفحه درست کنم در php برای آپلود فایل اما این ارور میده چرا یعنی هیچوقت شرط

if ($type != $allow_type){
درست در نمیاد
کد

<!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" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="MESMERiZE" />

<title>Untitled 3</title>
</head>

<body bgcolor="#57738E">

<title>upload page</title>
<p>&nbsp;<div align="center"><center><table border="0" width="966"> <tr><td width="966" bgcolor="#FFFFFF" align="center"><font face="verdana" size="2"><b>Design by MDR</b></font></td></tr><tr><td width="966" height="241"><p align="center">&nbsp;</p>
<?php
$upload_directory = "e:\upload";
$max_upload_size = "20126541" ;
$allow_type = "audio/mpeg";
$allow_file_type="1";
$font = "comic sans ms";
$font_size = "2";
$font_color = "black";
$no_file="<b><font face=\"$font\"size=\"$font_size\"color=\"$font_color\">Sorry you did not select a file to upload";
$to_big_file="<b><font face=\"$font\"size=\"$font_size\"color=\"$font_color\">Sorry file bigger than normal";
$not_correct_file="<b><font face=\"$font\"size=\"$font_size\"color=\"$font_color\">Sorry file type isn't correct";
$error_write_file="<b><font face=\"$font\"size=\"$font_size\"color=\"$font_color\">Sorry error in write file";
$already_uploaded="<b><font face=\"$font\"size=\"$font_size\"color=\"$font_color\">Sorry file already uploaded";
$thank_you="<b><font face=\"$font\"size=\"$font_size\"color=\"$font_color\">Thanks for your uploading:)";
if ($file_name)die("$no_file");
if ($file_size > $max_upload_size){
die("$to_big_file");
}
if ($allow_file_type=="1"){
if ($type != $allow_type){
die ($not_correct_file);
}
}
if ($file_exist("$upload_directory/$file_name")){
die("$already_uploaded");
}
@copy($file,"$upload_directory/$file_name") or die("$error_wirte_file");
echo "<center><b>$thank_you";
?></td></tr></table></center></div></p>
</body>
</html>
وصفحه html ای که درست کردم

<!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" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="MDR" />

<title>Untitled 2</title>
</head>

<body bgcolor="#57738E">

<title>upload file</title>
<p>&nbsp;&nbsp;&nbsp;<div align="centre"><center><table border="0" width="966" ><tr><td width="966" height="1" bgcolor="#FFFFFF" align="center"><p align="center"><font face="verdana" size="2"><b><marquee>MDR</marquee></b></font></p></td></tr><tr><td width="966" height="241" align="center"><p align="center">&nbsp;<form action="upload.php" method="POST" enctype="multipart/form-data"><p align="center"><font face="tahoma" size="3"><strong>Please upload file below</strong></font></p></p><input name="file" type="file" /><p><button name="submit" type="submit">upload</button></p><p align="center">&nbsp;</p></form></td></tr><tr><td width="966" height="1" bgcolor="#FFFFFF"> <p align="center"> <font face="comic sans ms" size="2"><b>This script created by <font face="comic sans ms" size="3">MDR</b></font></font></p></td></tr></table></center></p></div>
</body>
</html>

pejman_view
چهارشنبه 25 آبان 1390, 09:20 صبح
سلام

کدتان را داشتم مطالعه می کردم اما متوجه نشدم که چندتا از متغیرها از کجا فید می شن..
مثلاً:
$file_name
$file_size
$type

من اگر خودم بخوام اینکار رو بکنم از یک آرایه درون ساخته پی اچ پی $_FILES استفاده میکنم و به این متغیرها نسبت می دهم مثلاً به کدهای زیر توجه کنید:


$file_name = $_FILES['name']
$file_size = $_FILES['size']
$type = $_FILES['type']


ضمناً حجم فایل بر اساس بیت (هر 8 بیت = 1 بایت)
نوع فایل بر اساس استاندارد MIME Types هست. (http://reference.sitepoint.com/html/mime-types-full)

aghasoroush
پنج شنبه 26 آبان 1390, 03:19 صبح
دوست من $type رو من در کدتون ندیدم
من نمیبینم یا واقعا نیست؟
اگه واقعا نباشه به خاطر همین داره پیغام خطا میده