IIS と PHP 5.3 がインストールされた Windows を実行しているローカル マシンで、Flash SWF を使用してアップロードしようとしています。
var selected_file:FileReference = GetSelectedFile();
var url:String = 'http://localhost.com/upload.php';
var req:URLRequest = new URLRequest(url);
req.data = new URLVariables('source=' + 'computer');
req.method = URLRequestMethod.POST;
selected_file.upload(req, 'file', false);
selected_file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, UploadComplete, false, 0, true);
selected_file.addEventListener(ProgressEvent.PROGRESS, UploadProgress, false, 0, true);
selected_file.addEventListener(IOErrorEvent.IO_ERROR, UploadError, false, 0, true);
selected_file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, UploadSecurityError, false, 0, true);
すべてのハンドラー関数にブレークポイントを設定しました。UploadProgress
ハンドラーでブレークポイントにヒットしました。ただし、ファイルはアップロードされていません。ネットワーク トラフィックを見ると、 への呼び出しはありませんupload.php
。
FileReference アップロード機能のドキュメントを見ると、次のようになります。
呼び出し元の SWF ファイルが local-with-filesystem サンドボックスにある場合、アップロードとダウンロードは許可されません
local-with-filesystem サンドボックスの定義を見ると、次のことがわかりました。
このサンドボックスから、実行可能コードは (URLLoader クラスを使用するなどして) ローカル ファイルを読み取ることができますが、ネットワークと通信することはできません。これにより、ローカル データがネットワークに漏洩したり、不適切に共有されたりすることがないことが保証されます。
これは、ローカル マシンでアップロードをテストする方法がないということですか?
更新:おそらく、 Security.sandboxTypeを にする必要がありLOCAL_TRUSTED
ます。userおよびglobalの構成ファイルを追加して、セキュリティタイプを設定しようとしています。構成ファイルにはcfg
拡張子があり、swf ファイルが存在するフォルダーへのパスが 1 行含まれています。
この設定を追加した後も、Security.sandboxType は「remote」に設定されています。