Latest web development tutorials
×

PHP مسار

PHP مسار PHP مقدمة موجزة PHP تثبيت PHP قواعد PHP متغير PHP echo/print PHP أنواع البيانات PHP ثابت PHP سلسلة PHP مشغلي PHP If...Else PHP Switch PHP مجموعة PHP فرز مجموعة PHP Superglobals PHP While تداول PHP For تداول PHP وظيفة PHP المتغيرات السحرية PHP مساحات PHP الشيئية

PHP شكل

PHP شكل PHP مصادقة النماذج PHP شكل - الحقول المطلوبة PHP شكل - البريد الإلكتروني التحقق وURL PHP المثال شكل كامل PHP $_GET متغير PHP $_POST متغير

PHP دروس متقدمة

PHP المصفوفات متعددة الأبعاد PHP تاريخ PHP احتواء PHP ملف PHP تحميل ملف PHP Cookie PHP Session PHP E-mail PHP أمن E-mail PHP Error PHP Exception PHP فلتر PHP فلتر متقدم PHP JSON

PHP 7 الميزات الجديدة

PHP 7 الميزات الجديدة

PHP قاعدة بيانات

PHP MySQL مقدمة موجزة PHP MySQL صلة PHP MySQL إنشاء قاعدة بيانات PHP MySQL إنشاء جدول بيانات PHP MySQL إدراج بيانات PHP MySQL إدراج بيانات متعددة PHP MySQL القوائم المعدة PHP MySQL قراءة البيانات PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX مقدمة موجزة AJAX PHP AJAX قاعدة بيانات AJAX XML AJAX البحث في الوقت الحقيقي AJAX RSS Reader AJAX تصويت

PHP الدليل المرجعي

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP معالجة الصور PHP RESTful

تحميل ملف PHP

بواسطة PHP، يمكنك تحميل الملفات إلى الخادم.

الأمثلة في هذا الباب في إطار مشروع اختبار كاملة، وبنية الدليل:

test
|-----upload             # 文件上传的目录
|-----form.html          # 表单文件
|-----upload_file.php    # php 上传代码

إنشاء نموذج إيداع ملف

يسمح للمستخدمين بتحميل الملفات من شكل مفيد.

النظر في شكل HTML التالية لتحميل الملفات:

<html>
<head>
<meta charset="utf-8">
<title>本教程(w3big.com)</title>
</head>
<body>

<form action="upload_file.php" method="post" enctype="multipart/form-data">
	<label for="file">文件名:</label>
	<input type="file" name="file" id="file"><br>
	<input type="submit" name="submit" value="提交">
</form>

</body>
</html>

حفظ التعليمات البرمجية أعلاه لform.html الملف.

وترد أدناه العناصر القليلة ذات الصلة إلى النموذج HTML أعلاه:

  • <شكل> تحدد السمة العلامة enctypeمحتوى عند تقديم استمارة لاستخدام أي نوع. عندما يتطلب شكل البيانات الثنائية، مثل محتوى الملف، واستخدام"متعدد الأجزاء / شكل بيانات".
  • <إدخال> تحدد سمة نوع = "ملف"سمة ينبغي أن يعامل مدخلات كملفات. على سبيل المثال، عند معاينة في المتصفح، وسوف ترى بجانب مربع الإدخال يحتوي على زر استعراض.

ملاحظة: السماح للمستخدمين بتحميل الملفات يشكل خطرا أمنيا كبيرا.يرجى يسمح فقط للمستخدمين الموثوق بهم أداء تحميل الملف.


إنشاء النصي تحميل

"Upload_file.php" الملف يحتوي على كود لتحميل الملفات:

<?php
if ($_FILES["file"]["error"] > 0)
{
	echo "错误:" . $_FILES["file"]["error"] . "<br>";
}
else
{
	echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
	echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
	echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
	echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
}
?>

باستخدام PHP المصفوفات العالمية $ _files، يمكنك تحميل الملفات إلى ملقم بعيد من الكمبيوتر العميل.

المعلمة الأولى هو اسم مدخلات النموذج، يمكن منخفض الثاني أن يكون "اسم"، "اكتب"، "حجم"، "tmp_name" أو "خطأ". على النحو التالي:

  • $ _files [ "ملف"] [ "اسم"] - اسم الملف الذي تم تحميله
  • $ _files [ "ملف"] [ "نوع"] - أنواع الملفات تحميل
  • $ _files [ "ملف"] [ "حجم"] - حجم ملف التحميل في بايت
  • $ _files [ "ملف"] [ "tmp_name"] - يتم تخزين نسخة مؤقتة في اسم الخادم الملف
  • $ _files [ "ملف"] [ "خطأ"] - رمز الخطأ الناتج عن تحميل الملف

هذا هو تحميل الملف بسيطة جدا. واستنادا إلى اعتبارات أمنية، يجب زيادة القيود التي يسمح للمستخدمين بتحميل الملفات.


حد التحميل

في هذا السيناريو، واضاف لدينا إلى حد إيداع الملف. يمكن للمستخدمين تحميل فقط. GIF و jpeg، jpg و بابوا نيو غينيا الملف، يجب أن يكون حجم ملف أقل من 200 كيلو بايت:

<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);        // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800)    // 小于 200 kb
&& in_array($extension, $allowedExts))
{
	if ($_FILES["file"]["error"] > 0)
	{
		echo "错误:: " . $_FILES["file"]["error"] . "<br>";
	}
	else
	{
		echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
		echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
		echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
		echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
	}
}
else
{
	echo "非法的文件格式";
}
?>


حفظ الملف وسيتم تحميلها

المثال أعلاه هو إنشاء نسخة مؤقتة من الملف الذي تم تحميله في مجلد PHP خادم الملفات المؤقتة.

فإن نسخة مؤقتة من الملف تختفي في نهاية البرنامج النصي. حفظ ملف يتم تحميله، ونحن بحاجة إلى نسخها إلى موقع آخر:

<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
echo $_FILES["file"]["size"];
$extension = end($temp);     // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800)   // 小于 200 kb
&& in_array($extension, $allowedExts))
{
	if ($_FILES["file"]["error"] > 0)
	{
		echo "错误:: " . $_FILES["file"]["error"] . "<br>";
	}
	else
	{
		echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
		echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
		echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
		echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";
		
		// 判断当期目录下的 upload 目录是否存在该文件
		// 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
		if (file_exists("upload/" . $_FILES["file"]["name"]))
		{
			echo $_FILES["file"]["name"] . " 文件已经存在。 ";
		}
		else
		{
			// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
			move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
			echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
		}
	}
}
else
{
	echo "非法的文件格式";
}
?>

البرنامج النصي أعلاه بالكشف عن ما إذا كان الملف موجود بالفعل، إن لم يكن، وطرح يتم نسخ الملفات إلى دليل يسمى "تحميل" ل.

تجريبي عملية إيداع الملف على النحو التالي: