ホームページ php教程 php手册 PHP图片上传实例分析[包含预览]

PHP图片上传实例分析[包含预览]

May 25, 2016 pm 04:45 PM
ファイルのアップロード

图片上传与文件上传在php中都是一样直接使用move_uploaded_file($_FILES["filename"]["tmp_name"]就可以实现了,下面我来给大家分享一个站长分享文件上传例子。

前期需要了解的知识点

move_uploaded_file()文件上传函数

if(move_uploaded_file($_FILES["filename"]["tmp_name"])
{
	echo '文件上传成功';
}
ログイン後にコピー

$_FILES php全局变量

$_FILES: 经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)

$_FILES['myFile']['name']   客户端文件的原名称。
$_FILES['myFile']['type']   文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size']   已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name']   文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但用 putenv() 函数设置是不起作用的。
$_FILES['myFile']['error']   和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK             值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE      值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE  值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL          值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE          值:4; 没有文件被上传。    值:5; 上传文件大小为0.
ログイン後にコピー

核心文件:

upimg.htm

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>上传图片</title>
<script language="javascript">
function $(id) {
	return document.getElementById(id);
}
function ok() {
	$("logoimg").src = $("filename").value;
}
</script>
</head>
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0"> 
  <tr> 
    <td height="45" align="center" valign="middle">
  <form action="uploadf.php?submit=1" method="post" enctype="multipart/form-data" name="form1"> 请选择上传的图片 
   <input type="file" name="filename" id="filename" onchange="ok()"> 
   <!-- MAX_FILE_SIZE must precede the file input field -->
   <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
   <input type="submit" name="Submit" value="上传"> 
  </form>
 </td> 
  </tr> 
</table> 
<font color="red">注意:请上传120*45像素的GIF或者jpg格式的logo图片</font><br/>
logo预览:<img  src="/static/imghw/default1.png"  data-src="images/bg-02.gif"  class="lazy"  id="logoimg" / alt="PHP图片上传实例分析[包含预览] " >
</body>
</html>
ログイン後にコピー

调用示例文件:

testUpload.htm

<?php
if (!empty($_GET[submit])) {
    $path = "uploadfiles/pic/"; //上传路径
    //echo $_FILES["filename"]["type"];
    if (!file_exists($path)) {
        //检查是否有该文件夹,如果没有就创建,并给予最高权限
        mkdir("$path", 0700);
    } //END IF
    //允许上传的文件格式
    $tp = array(
        "image/gif",
        "image/pjpeg",
        "image/png"
    );
    //检查上传文件是否在允许上传的类型
    if (!in_array($_FILES["filename"]["type"], $tp)) {
        echo "格式不对";
        exit;
    } //END IF
    if ($_FILES["filename"]["name"]) {
        $file1 = $_FILES["filename"]["name"];
        $file2 = $path . time() . $file1;
        $flag = 1;
    } //END IF
    if ($flag) $result = move_uploaded_file($_FILES["filename"]["tmp_name"], $file2);
    //特别注意这里传递给move_uploaded_file的第一个参数为上传到服务器上的临时文件
    if ($result) {
        //echo "上传成功!".$file2;
        echo "<script language=&#39;javascript&#39;>";
        echo "alert(\"上传成功!\");";
        //echo " location=&#39;add_aaa.php?pname=$file2&#39;";
        echo "</script>";
        echo ("<input type=\"button\" name=\"Submit\" value=\"确定\" onClick=\"window.opener.setFile(&#39;" . $file2 . "&#39;);window.close();\">");
        echo "图片名称:" . $file2;
    } //END IF
    
} else {
    echo "file is null!";
}
?>
调用示例文件:
testUpload.htm
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>上传图片</title>
<script>
function setFile(f1){
   document.frm.logoImg.value=f1;
}
</script>
</head>
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0"> 
  <tr> 
    <td height="45" align="center" valign="middle">
  <form action="#" method="post"  name="frm"> 请选择上传的图片 
        <input name="regAd.logoImg" id="logoImg"   type="text" size="30"/>
    <label style="cursor:hand" onClick="window.open(&#39;upimg.htm&#39;,&#39;上传图片&#39;,&#39;height=200,width=400,top=200,left=200&#39;)">上传图片</label><br/>
  </form>
 </td> 
  </tr> 
</table>
</body>
</html>
ログイン後にコピー

此程序不足之处分析

上传预览功能

function $(id) {
	return document.getElementById(id);
}
function ok() {
	$("logoimg").src = $("filename").value;
}
ログイン後にコピー

这段代码其实就是一个鸡肋了,在有一些浏览器下是不兼容了,但不会影响到图片上传功能。

程序安全

对于在上传处我们并未进行数据大小限制与程序上传文件类型进行限制,这样可以利用它来上传一些像php文件,这样你的网站就不安全了哦。

本文链接:

收藏随意^^请保留教程地址.

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Workerman ドキュメントにファイルのアップロードとダウンロードを実装する Workerman ドキュメントにファイルのアップロードとダウンロードを実装する Nov 08, 2023 pm 06:02 PM

Workerman ドキュメントでファイルのアップロードとダウンロードを実装するには、特定のコード サンプルが必要です はじめに: Workerman は、シンプル、効率的、使いやすい高性能 PHP 非同期ネットワーク通信フレームワークです。実際の開発では、ファイルのアップロードとダウンロードが一般的な機能要件となりますが、この記事では、Workerman フレームワークを使用してファイルのアップロードとダウンロードを実装する方法と、具体的なコード例を紹介します。 1. ファイル アップロード: ファイル アップロードとは、ローカル コンピューター上のファイルをサーバーに転送する操作を指します。以下が使用されます

Laravelを使用してファイルのアップロードおよびダウンロード機能を実装する方法 Laravelを使用してファイルのアップロードおよびダウンロード機能を実装する方法 Nov 02, 2023 pm 04:36 PM

Laravel を使用してファイルのアップロードおよびダウンロード機能を実装する方法 Laravel は、Web アプリケーションの開発をより簡単かつ効率的にするための豊富な機能とツールを提供する人気のある PHP Web フレームワークです。よく使用される機能の 1 つは、ファイルのアップロードとダウンロードです。この記事では、Laravelを使用してファイルのアップロードおよびダウンロード機能を実装する方法と、具体的なコード例を紹介します。ファイルのアップロード ファイルのアップロードとは、ローカル ファイルを保存するためにサーバーにアップロードすることを指します。 Laravelではファイルアップロードを使用できます

gRPC を使用して Golang でファイルのアップロードを実装するにはどうすればよいですか? gRPC を使用して Golang でファイルのアップロードを実装するにはどうすればよいですか? Jun 03, 2024 pm 04:54 PM

gRPC を使用してファイルのアップロードを実装するにはどうすればよいですか?リクエストおよびレスポンスメッセージを含むサポートサービス定義を作成します。クライアントでは、アップロードされるファイルが開かれてチャンクに分割され、gRPC ストリーム経由でサーバーにストリーミングされます。サーバー側では、ファイル チャンクが受信され、ファイルに保存されます。ファイルのアップロードが完了すると、サーバーはアップロードが成功したかどうかを示す応答を送信します。

Javaファイルアップロード例外(FileUploadException)の解決方法 Javaファイルアップロード例外(FileUploadException)の解決方法 Aug 18, 2023 pm 12:11 PM

Java ファイルアップロード例外 (FileUploadException) を解決する方法 Web 開発でよく遭遇する問題の 1 つは、FileUploadException (ファイル アップロード例外) です。この問題は、ファイル サイズが制限を超えている、ファイル形式が一致していない、サーバー構成が正しくないなど、さまざまな理由で発生する可能性があります。この記事では、これらの問題を解決するいくつかの方法について説明し、対応するコード例を示します。アップロードされるファイルのサイズを制限する ほとんどのシナリオでは、ファイル サイズを制限します

PHPを使用してFTPファイルアップロードの進行状況バーを実装する方法 PHPを使用してFTPファイルアップロードの進行状況バーを実装する方法 Jul 30, 2023 pm 06:51 PM

PHP を使用して FTP ファイル アップロード プログレス バーを実装する方法 1. 背景の紹介 Web サイト開発では、ファイル アップロードは一般的な機能です。大きなファイルのアップロードでは、ユーザー エクスペリエンスを向上させるために、多くの場合、ファイルのアップロード プロセスをユーザーに知らせるために、アップロードの進行状況バーを表示する必要があります。この記事では、PHPを使用してFTPファイルアップロードのプログレスバー機能を実装する方法を紹介します。 2. FTP ファイルアップロードのプログレスバー実装の基本的な考え方. FTP ファイルアップロードのプログレスバーは通常、アップロードされたファイルのサイズとアップロードされたファイルのサイズを計算することによって計算されます。

Laravel でのファイルのアップロードと処理: ユーザーがアップロードしたファイルの管理 Laravel でのファイルのアップロードと処理: ユーザーがアップロードしたファイルの管理 Aug 13, 2023 pm 06:45 PM

Laravel でのファイルのアップロードと処理: ユーザーがアップロードしたファイルの管理 はじめに: ファイルのアップロードは、最新の Web アプリケーションにおける非常に一般的な機能要件です。 Laravel フレームワークでは、ファイルのアップロードと処理が非常にシンプルかつ効率的になります。この記事では、ファイルアップロードの検証、保存、処理、表示など、Laravelでユーザーがアップロードしたファイルを管理する方法を紹介します。 1. ファイルのアップロード ファイルのアップロードとは、クライアントからサーバーにファイルをアップロードすることを指します。 Laravel では、ファイルのアップロードは非常に簡単に処理できます。初め、

PHP ファイル アップロード ガイド: move_uploaded_file 関数を使用してアップロードされたファイルを処理する方法 PHP ファイル アップロード ガイド: move_uploaded_file 関数を使用してアップロードされたファイルを処理する方法 Jul 30, 2023 pm 02:03 PM

PHP ファイル アップロード ガイド: move_uploaded_file 関数を使用してアップロードされたファイルを処理する方法 Web アプリケーションの開発では、ファイルのアップロードが一般的な要件です。 PHP には、アップロードされたファイルを処理するための便利な関数 move_uploaded_file() が用意されています。この記事では、この機能を使ってファイルアップロード機能を実装する方法を紹介します。 1. 準備 開始する前に、PHP 環境がファイルアップロードパラメータで設定されていることを確認してください。これを行うには、php.in を開いてください。

Golang関数でファイルアップロード処理を簡素化 Golang関数でファイルアップロード処理を簡素化 May 02, 2024 pm 06:45 PM

回答: はい、Golang はファイルのアップロード処理を簡素化する機能を提供します。詳細: MultipartFile タイプは、ファイルのメタデータとコンテンツへのアクセスを提供します。 FormFile 関数は、フォーム要求から特定のファイルを取得します。 ParseForm 関数と ParseMultipartForm 関数は、フォーム データとマルチパート フォーム データを解析するために使用されます。これらの機能を使用すると、ファイル処理プロセスが簡素化され、開発者はビジネス ロジックに集中できるようになります。

See all articles