-
آپلود فایل
برای قسمت آپلود وب سایتم این کد را قرار دادم اما وقتی فایلی را انتخاب میکنم و روی آپلود کلیک میکنم صفحه اصلی وب سایت باز میشود اما اگر این کد را در صفحه دیگری امتحان کنم فایل آپلود میشود به نظر شما مشکل از کجاست؟
[PHP] <?php
$target = "upload/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
}
else {
echo "Sorry, there was a problem uploading your file.";
}
?>
<form action="<?php $_SERVER['PHP_SELF']?>" method="POST">
<br/>انتخاب فایل: <input name="uploaded" type="file" /><br />
<input type="submit" value="Upload" />
</form>
[/PHP]
-
سلام می تونید از کد زیر استفاده کنید که بهترم هست
[PHP]<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
if(isset($_POST["upload"])){
$des=$_FILES['file']['name'];
if(file_exists($des)){
$i=0;
$name=pathinfo($des);
while(file_exists($des))
$des=$name['filename']."_".(++$i).".".$name['extension'];
$name2=$name['filename'].'.'.$name['extension'];
}
if(move_uploaded_file($_FILES['file']['tmp_name'],$des))
$result=1;
else
$result=0;
sleep(1);
if($result==1){echo "The file $name2 has been uploaded";}
elseif($result==0){echo "Sorry, there was a problem uploading your file.";}
}
?>
<form action="<?php $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<br />select file : <input name="file" type="file" /><br />
<input name="upload" type="submit" value="Upload" />
</form>[/PHP]
-
سلام.
هنگامی می خواهید فایل ارسال کنید، باید enctype فرم رو multipart/form-data قرار دهید.
یعنی خط اول تگ فرم شما باید به این صورت باشد:
[PHP]<form action="<?php $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">[/PHP]
اگر این قسمت رو درست تنظیم کنید، اسکریپت شما مشکلی نخواهد داشت.
البته می تونید از اسکریپت m p c استفاده کنید که کامل تر از کد شماست. فراموش نکنید که همیشه فرمت و نوع فایلی که آپلود میشه رو چک کنید. چون ممکنه کاربر به جای فایل معمولی، یک shell script آپلود کنه و .... (تمام)
موفق باشید ./.
-
راستی من داشتم یه فایل php رو با فرمت gif آپلود می کردم( :دی ) ولی گفت که فایل به نظر امن نیست. چه شکلی فهمیده؟! function خاصی داره؟
یکی از همین سایت های آپلود.
-
سه تا فیلم آموزشی گیر اوردم:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
File uploading, ensuring that you only allow a specific set of allowed file extensions. An easy, eff...
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
File uploading, ensuring that you only allow a specific set of allowed file extensions. An easy, eff...
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
File uploading, ensuring that you only allow a specific set of allowed file extensions. An easy, eff...
-
برای قسمت آپلود سایت از این کد استفاده میکنم اما کد کار نمیکنه !!!!!!!!!
[PHP] <?php
$uploadDir = 'upload/';
mysql_error();
if(isset($_POST['upload']))
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$filePath = $uploadDir . $fileName;
$result = move_uploaded_file($tmpName, $filePath);
if (!$result) {
echo "Error uploading file";
exit;
}
$link=mysql_connect("127.0.0.1","root","");
if(!$link)
print "not connect";
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
$mysql=mysql_query("INSERT INTO file(name, size, type, path ".
"VALUES ('".$fileName."', '".$fileSize."', '".$fileType."', '".$filePath."')");
if($mysql)
print "ok uploaded ";
}
?>
<form action="<?php $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<br />select file : <input name="file" type="file" /><br />
<input name="upload" type="submit" value="upload" />
</form>[/PHP]
-
فایل آپلود نمیشه یا رکورد اضافه نمیشه؟
شما در کدتون هیچ دیتابیسی رو انتخاب نکرده اید. سیستم از کجا بدونه که جدول file در کدوم db هست؟
بعد از کانکت شدن به دیتابیس جدول رو با این کد انتخاب کنید:
[PHP]$db_selected = mysql_select_db('db_name', $link);[/PHP]
-
وقتی روی آپلود کلیک میکنم مرورگر این پیغام را به من نشان میده
[PHP]echo "Error uploading file";[/PHP]
-
شما اسم فیلدی رو که در فرم html هست در قسمت php اشتباه وارد کردید. نام فیلد file هست ولی شما از userfile استفاده کردید
-
چه تغییراتی در کد آپلود اعمال کنم تا فقط اجازه چهار نوع فایل(doc,pdf,zip,powerpoint) برای اپلود را بدهد
-
-
اگر اون سه فیلمی رو که گذاشتم ببینید همه ی این مشکلاتتون حل میشد توش پسوند هارو هم داشت!
-
سلام.
شما باید ۲ مورد رو (پیدا و) کنترل کنید:
۱. extension (منظور عبارتی که بعد از آخرین . می آید):
شما نام کامل فایل (نام + extension) رو دارید (عنصر name). پس برای پیدا کردن فرمت، کافیه عبارتی که بعد از آخرین . در نام فایل اومده رو پیدا کنید:
[PHP]<?php
$ext = explode(".", $_FILES['file']['name']);
$ext = $ext[ count($ext) - 1 ];
?>[/PHP]۲. نوع فایل (MIMETYPE):
این مورد رو به طور پیشفرض تعریف شده و در عنصر type وجود داره:
[PHP]<?php
$mime = $_FILES['file']['type'];
?>[/PHP]خب، ما الان هر ۲ مورد رو داریم. و حالا باید کنترل کنیم و ببینیم که مشخصات فایل ارسالی کاربر با مشخصات فایل های ارسالی مجاز ما (در اینجا doc,pdf,zip,powerpoint) می خونه یا نه (کد کامل):
[PHP]<?php
$ext = explode(".", $_FILES['file']['name']);
$ext = $ext[ count($ext) - 1 ];
$mime = $_FILES['file']['type'];
/*****/
$valid_mime_doc = array("application/msword", "application/doc", "appl/text", "application/vnd.msword", "application/vnd.ms-word", "application/winword", "application/word", "application/x-msw6", "application/x-msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
$valid_mime_ppt = array("application/vnd.ms-powerpoint", "application/mspowerpoint", "application/ms-powerpoint", "application/mspowerpnt", "application/vnd-mspowerpoint", "application/powerpoint", "application/x-powerpoint", "application/x-m", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
$valid_mime_pdf = array("application/pdf", "application/x-pdf", "application/acrobat", "applications/vnd.pdf", "text/pdf", "text/x-pdf");
$valid_mime_zip = array("application/zip", "application/x-zip", "application/x-zip-compressed", "application/x-compress", "application/x-compressed", "multipart/x-zip");
//$valid_mime_zip[] = "application/octet-stream";
/*****/
$valid_mime = array_merge($valid_mime_doc, $valid_mime_ppt, $valid_mime_pdf, $valid_mime_zip);
$valid_ext = array("doc", "docx", "ppt", "pptx", "pdf", "zip");
if(in_array($ext, $valid_ext) && in_array($mime, $valid_mime)){
//+-+-+-+-+-+-+-+-+-
}
?>[/PHP]
البته ما در اینجا فایل های pptx و docx رو هم مجاز کردیم.
موفق باشید ./.
-
اگر خواسته باشیم فقط یک نوع فایل(عکس) آپلود کنیم باید بدین صورت نوشت؟؟
[PHP]$valid_mime_image = array("application/jpg", "application/png", "application/gif", "application/bmp", "application/jpeg");
//$valid_mime_zip[] = "application/octet-stream";
/*****/
$valid_mime = array_merge($valid_mime_image);
$valid_ext = array("image");[/PHP]
-
بله.
البته، extension با mime تفاوت داره. همون طور که گفتم extension تقریبا معادل فرمت فایله. باید ببینید فرمت فایلتون چیه. از اونجایی که شما تصاویر رو مد نظر دارید، extension های مجاز عبارتند از: jpg, png, gif, bmp (و البته jpeg).
کد شما باید به این صورت باشه:
[PHP]$valid_mime_image = array("application/jpg", "application/png", "application/gif", "application/bmp", "application/jpeg");
/*****/
$valid_mime = $valid_mime_image;
$valid_ext = array("jpg", "jpeg", "gif", "png", "bmp"); [/PHP]
البته لیست کامل MIMETYPE های مربوط به این تصاویر رو باید از سایت های مختلف (مثل filext.com) پیدا کنید.
(وقتی یک آرایه (یک نوع فایل) دارید، array_merge نیاز نیست)
موفق باشید ./.
-
برای دانلود فایل بدین صورت کد را نوشتم
[PHP]$result=mysql_query("select * from `fil` where `id`='".intval($_GET['id'])."'")or die(mysql_error());
if(mysql_num_rows($result)>0 ){
$row=mysql_fetch_assoc($result);
$file=$row['name'];
$type="application/pdf";
$data=file_get_contents("pdf/".$file);
$size=strlen($data);
header("content-disposition:attachment; filename=$file");
header("content-type:$type");
header("content-length:$size");
echo $data; [/PHP]
اما فایلی که دانلود میکنم حجم آن کمتر از حجم واقعی آن میباشد ووقتی آن فایل را باز میکنم این پیغام خطا را نشان میدهد
adobe reader couldnot open it
-
باتوجه به کد بالا اگر یک فایل از نوع pdf یا........باشد چندین بار انتخاب کنم و روی آپلود کلیک کنم فایل آپلود میشود وبه پوشه upload میره