Flash+PHP 画像アップロードを実装します。それぞれに独自の役割分担があります:
フラッシュはブラウザを開いてコンピュータを閲覧する役割を果たします;
ここで必要な Flash メソッドは次のとおりです:
1. FileReference または FileReferenceList クラス。コンピューターの参照を担当します。この 2 つの違いは、前者は一度に 1 つのファイルを選択できるのに対し、後者は一度に複数のファイルを選択できることです。 ;
言語バージョン:
|
ActionScript 3.0
|
プレイヤーバージョン:
|
Flash プレーヤー 9
|
FileReference クラスは、ユーザーのコンピューターとサーバーの間でファイルをアップロードおよびダウンロードするためのメソッドを提供します。 オペレーティング システムのダイアログ ボックスでは、アップロードするファイルまたはダウンロードする場所を選択するようユーザーに求められます。 各 FileReference オブジェクトはユーザーのディスク上のファイルを参照し、ファイルのサイズ、タイプ、名前、作成日、変更日、作成者のタイプ (Macintosh のみ) に関する情報を含むプロパティを持ちます。
2. 開いた後、FileFilter を使用して、選択したファイルの形式を制限できます。
言語バージョン:
|
ActionScript 3.0
|
プレイヤーバージョン:
|
Flash プレーヤー 9
|
FileFilter クラスは、<span class="searchhilite"><code>FileReference
<span class="searchhilite"><code>FileReference
.browse() 或 <span class="searchhilite"><code>FileReference
List.browse() 时,用户系统上的哪些文件显示在出现的文件浏览对话框中。 FileFilter 实例将被传递给 browse()
函数。 如果使用 FileFilter 实例,则 FileFilter 实例中未指定的扩展名和文件类型将被过滤掉,即用户在上载时无法选择这些类型。 如果未将 FileFilter 对象传递给 browse()
.browse() または <span class="searchhilite"> <code>FileReference
List.browse() 表示されるファイル参照ダイアログ ボックスに、ユーザーのシステム上のどのファイルが表示されるか。 FileFilter インスタンスは browse()
関数に渡されます。 FileFilter インスタンスが使用される場合、FileFilter インスタンスで指定されていない拡張子とファイル タイプはフィルターで除外されます。つまり、ユーザーはアップロード時にこれらのタイプを選択できません。 FileFilter オブジェクトが browse()
に渡されない場合、すべてのファイルがダイアログ ボックスに表示されます。
3.これだけで十分です
php はバックグラウンドアップロードを担当します。この部分には move_uploaded_file という関数が 1 つだけあります。
アップロードされたファイルを移動
(PHP 4 >= 4.0.3、PHP 5)
move_uploaded_file -- アップロードされたファイルを新しい場所に移動します
手順
bool move_uploaded_file (文字列ファイル名、文字列宛先)
この関数は、filename
で指定されたファイルが正当なアップロード ファイル (つまり、PHP の HTTP POST アップロード メカニズムを通じてアップロードされたファイル) であることをチェックし、保証します。ファイルが正当な場合、そのファイルは destination
で指定されたファイルに移動されます。 filename
指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination
指定的文件。
如果 filename
不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE。
如果 filename
filename
が有効なアップロード ファイルでない場合、操作は行われず、move_uploaded_file() は FALSE
を返します。
filename
が正当にアップロードされたファイルであるが、何らかの理由で移動できない場合、アクションは発生せず、
move_uploaded_file()
は
FALSE🎜🎜 を返します。警報も発令されています。 🎜🎜🎜この種のチェックは、アップロードされたファイルによってそのコンテンツがこのシステムのユーザーまたは他のユーザーに表示される可能性がある場合に特に重要です。 🎜 🎜
🎜コード部分:🎜
🎜 🎜
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
インポート fl.controls.Button;
import flash.net.FileReference;
import flash.net.FileFilter;
public クラス メイン拡張 スプライト
{
public var file:FileReference;
public var btn:Button;
public var arr:Ar ray;
public var imgfilter:FileFilter;
public var swffilter:FileFilter;
public var ureq:URLRequest;
public function Main()
{
ファイル = new FileReference();
btn = new Button();
imgfilter = new FileFilter("画像)
「、」*.png;*。 jpg");
btn.label = "ブラウザ";
btn.強調 = true;
btn.width = 150;
btn.move(100, 100);
ureq.url = "http://localhost/test/ img/upload.php";
btn.addEventListener(MouseEvent.MOUSE_DOWN, down);
file.addEventListener(Event.COMPLETE, complete);
file.addEventListener(Event.OPEN,open);
file.addEventListener(Event.CANCEL, cancel);//点击取消按钮会广播这个イベント
file.addEventListener(Event.SELECT, select);
addChild(btn);
}
関数ダウン(E:MouseEvent):
//
Browseパラメーターは、ファイル選択タイプのファイルフィルターオブジェクトです。 (トレースとして):
void
{
"cancel
"
); ;
+
"
,
"
+
tem.size); file.upload(ureq) }
}
;
PHPコード:
php
$uploaddir = './uploads/';// ストレージを設定するパス
$ファイル名 = $_FILES['ファイルデータ']['名前']; //選択したファイルを取得します
$uploadfile = $uploaddir . $filename;// ストレージファイルパス
$uploadfile = iconv('utf-8', 'gb2312', $uploadfile);/ /ファイル形式を設定
move_uploaded_file($_FILES['Filedata'][') tmp_name']、 $uploadfile);//アップロードを開始
?>