الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال بسيط عن ال Upload.php

بدأه rixlinux في 29 يوليو 2008 · 9 رد · 914 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

عندي سؤال ان شاء الله يكون خفيف بخصوص سكربت رفع الملفات ..

طبعا الكل يعرف هذا الكود :

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
	{
	echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
	}
  else
	{
	echo "Upload: " . $_FILES["file"]["name"] . "<br />";
	echo "Type: " . $_FILES["file"]["type"] . "<br />";
	echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
	echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
	if (file_exists("upload/" . $_FILES["file"]["name"]))
	  {
	  echo $_FILES["file"]["name"] . " already exists. ";
	  }
	else
	  {
	  move_uploaded_file($_FILES["file"]["tmp_name"],
	  "images/" . $_FILES["file"]["name"]);
	  echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
	  }
	}
  }
else
  {
  echo "Invalid file";
  }
?>

نلاحظ مثلا انه تم تحديد نوع الملف :

if ((($_FILES["file"]["type"] == "image/gif")

ملف صوره بأمتداد gif

السؤال : ماهي الطريقه السليمه لتحديد ملف mp3 صوتي او ملفات الفيديو ؟

ارجوا ان سؤالي يكون واضح .. وبنتظآر الرد ان شاء الله

تحيتي للجميع : RixLinux

#2

ما أعرفه هو جعل مصفوفة للإمتدادات المسموحة .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#3

ما فهمت قصدك .. هل تستطيع توضيح قصدكـ بمثال :)

ما اقصده انا ان :

if ((($_FILES["file"]["type"] == "image/gif")

هذا الكود لو تلاحظ .. انه حدد نوع الملف و امتداده .. اي :

"image/gif"

image هو نوع الملف .. وهو بالطبع صورهـ

gif هذا امتداد الملف ..

-------------------------------------------

ما اقصده بالتحديد هو . اريد وضع امتداد لملف صوتي ،، جربت استبدل هذا الكود بالتالي :

if ((($_FILES["file"]["type"] == "sound/mp3")

if ((($_FILES["file"]["type"] == "audio/mp3")

ولكن مع الاسف .. هناك خطأ اكيد بعملي :)

انتظر البقيه .. ومشكور اخوي sife على الرد . ويعطيكـ العافية :)

#4

جرب audio/x-mpeg .

اذا لم تنجح , قم ببساطه بعمليه طباعه لنوع الـ MIME لتعرف النوع الذي تريده , مثلا , في بدايه السكربت الخاص بإستلام التحميل , اكتب :

echo $_FILES["file"]["type"];

تم تعديل هذه المشاركة بواسطة محمد معاشر في 29 يوليو 2008 في 16:25

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#5

يسلموو اخوي محمد ع الرد .. وجاري التجربة :)

#6

mp3==>"audio/mpeg3"

wav==>"audio/wav"

I Say Nothing

#8

اخي الفاضل انا محتاج لكود رفع الملفات ومنع ملفات معينة فهل يمكنك مساعدتي في ذلك .

#10

اخي الفاضل انا احاول ضبط سكريبت في شبكة محلية لرفع ملفات الموظفين لكن العملية لم تنجح

الصفحة الاولى :

<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
	<!-- MAX_FILE_SIZE must precede the file input field -->
	<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
	<!-- Name of input element determines name in $_FILES array -->
	Send this file: <input name="userfile" type="file" />
	<input type="submit" value="Send File" />
</form>

الصفحة الثانية :

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

$uploaddir = '/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
	echo "File is valid, and was successfully uploaded.\n";
} else {
	echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

?>

كذلك كيف اضبط مسار مجلد تحميل الملفات

حاولت اكتب المسار لكن لم تنجح العملية

$uploaddir = '/localhost/uploads/';

استخدم camel server

مواضيع مشابهة