Latest web development tutorials
×

PHP kurs

PHP kurs PHP krótkie wprowadzenie PHP zainstalować PHP gramatyka PHP zmienna PHP echo/print PHP Typy danych PHP stały PHP sznur PHP operatorzy PHP If...Else PHP Switch PHP szyk PHP Sortowanie tablicy PHP superglobalne PHP While krążenie PHP For krążenie PHP funkcja PHP Magiczne Zmienne PHP Przestrzenie nazw PHP Obiektowe

PHP forma

PHP forma PHP Uwierzytelnianie za pomocą formularzy PHP forma - wymagane pola PHP forma - Weryfikacja e-mail i adres URL PHP Kompletna wystąpienie formularza PHP $_GET zmienna PHP $_POST zmienna

PHP zaawansowane Tutorial

PHP Tablice wielowymiarowe PHP data PHP zawierać PHP plik PHP Prześlij plik PHP Cookie PHP Session PHP E-mail PHP bezpieczeństwo E-mail PHP Error PHP Exception PHP filtr PHP Filtr zaawansowany PHP JSON

PHP 7 Nowe funkcje

PHP 7 Nowe funkcje

PHP baza danych

PHP MySQL krótkie wprowadzenie PHP MySQL połączenie PHP MySQL Tworzenie bazy danych PHP MySQL Tworzenie tabeli danych PHP MySQL Należy wprowadzić dane PHP MySQL Wstawić wiele danych PHP MySQL Przygotowane sprawozdania PHP MySQL odczytać dane 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 krótkie wprowadzenie AJAX PHP AJAX baza danych AJAX XML AJAX Wyszukiwanie w czasie rzeczywistym AJAX RSS Reader AJAX głosowanie

PHP Reference Manual

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 Przetwarzanie obrazu PHP RESTful

Upload plików PHP

PHP, można przesyłać pliki na serwer.

Przykłady w tym rozdziale pod projektem badawczym jest kompletny, struktura katalogów:

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

Tworzenie formularza przesyłania plików

Pozwala użytkownikom na przesyłanie plików z formą jest przydatna.

Rozważmy następujący formularz HTML do przesyłania plików:

<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>

Zapisz powyższy kod do form.html pliku.

Kilka pozycji związanych z powyższego formularza HTML są wymienione poniżej:

  • <Form> atrybutu tag enctypeokreśla treść przy składaniu formularza którego można użyć typu. Gdy forma wymaga danych binarnych, takich jak zawartość pliku, użyj"wieloczęściowy / form-data".
  • <Input> typutag= "file"atrybut określa wejście powinno być traktowane jako pliki. Na przykład, podczas podglądu w przeglądarce, pojawi się obok pola wejściowego ma przycisk Przeglądaj.

Uwaga: Zezwalaj użytkownikom na przesyłanie plików jest ogromne zagrożenie dla bezpieczeństwa.Proszę pozwala tylko zaufani użytkownicy mogą wykonywać przesyłanie plików.


Tworzenie skryptu wysyłania

"Upload_file.php" plik zawiera kod do przesyłania plików:

<?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"];
}
?>

Za pomocą PHP globalne tablice $ _FILES, można przesyłać pliki do zdalnego serwera z komputera klienckiego.

Pierwszy parametr to nazwa formularza wejściowego, drugi indeks może być "Nazwa", "typ", "rozmiar", "tmp_name" lub "error". W następujący sposób:

  • $ _FILES [ "Plik"] [ "nazwa"] - nazwa przesłanego pliku
  • $ _FILES [ "Plik"] [ "typ"] - typy upload plików
  • $ _FILES [ "Plik"] [ "rozmiar"] - przesyłanie rozmiar pliku w bajtach
  • $ _FILES [ "Plik"] [ "tmp_name"] - tymczasowa kopia jest przechowywana w nazwie pliku na serwerze
  • $ _FILES [ "Plik"] [ "błąd"] - kod błędu wynikającego z przesyłania plików

Jest to bardzo proste przesłanych plików. W oparciu o względy bezpieczeństwa, należy zwiększyć ograniczenia, na której użytkownicy mogą przesyłać pliki.


Prześlij limitu

W tym scenariuszu, dodaliśmy do granic możliwości przesyłania plików. Użytkownicy mogą przesyłać jedynie .gif, .jpeg, .jpg, .png pliku, rozmiar pliku musi być mniejsza niż 200 kB:

<?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 "非法的文件格式";
}
?>


Zapisz plik do przesłania

Powyższy przykład jest stworzenie tymczasową kopię przesłanego pliku w folderze tymczasowym serwera plików PHP.

Tymczasowa kopia pliku zniknie na koniec skryptu. Aby zapisać plik zostanie przesłany, musimy skopiować go do innej lokalizacji:

<?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 "非法的文件格式";
}
?>

Powyższy skrypt wykryje, czy plik już istnieje, a jeśli nie, umieścić pliki zostaną skopiowane do katalogu o nazwie "Upload" z.

Demo operacji wysyłania pliku jest następująca: