ホームページ >バックエンド開発 >PHPチュートリアル >PHP swfupload 画像ファイルアップロードサンプルコード

PHP swfupload 画像ファイルアップロードサンプルコード

WBOY
WBOYオリジナル
2016-06-13 12:20:07894ブラウズ

PHP swfupload 画像ファイルアップロードのサンプルコード

swfupload は、PHP と組み合わせると、更新せずに画像ファイルをすばやくアップロードでき、画像をバッチでアップロードすることもできる Flash プラグインです。PHP swfupload を紹介します。ファイルアップロードのサンプルコードへの参照があるので、理解する必要があります。

レンダリング



?

index.php ファイル

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head><title>SWFUpload Demos - SWFObject Demo</title><link href="../css/default.css" rel="stylesheet" type="text/css" /><script type="text/javascript" src="../swfupload/swfupload.js"></script><script type="text/javascript" src="js/swfupload.swfobject.js"></script><script type="text/javascript" src="js/swfupload.queue.js"></script><script type="text/javascript" src="js/fileprogress.js"></script><script type="text/javascript" src="js/handlers.js"></script><script type="text/javascript">var swfu;SWFUpload.onload = function () { var settings = {  flash_url : "../swfupload/swfupload.swf",  upload_url: "upload.php",  post_params: {   "PHPSESSID" : "NONE",   "HELLO-WORLD" : "Here I Am",   ".what" : "OKAY"  },  file_size_limit : "100 MB",  file_types : "*.jpg;*.gif;*.png;*.jpeg;",  file_types_description : "All Files",  file_upload_limit : 100,  file_queue_limit : 0,  custom_settings : {   progressTarget : "fsUploadProgress",   cancelButtonId : "btnCancel"  },  debug: false,  // Button Settings  button_image_url : "XPButtonUploadText_61x22.png",  button_placeholder_id : "spanButtonPlaceholder",  button_width: 61,  button_height: 22,  // The event handler functions are defined in handlers.js  swfupload_loaded_handler : swfUploadLoaded,  file_queued_handler : fileQueued,  file_queue_error_handler : fileQueueError,  file_dialog_complete_handler : fileDialogComplete,  upload_start_handler : uploadStart,  upload_progress_handler : uploadProgress,  upload_error_handler : uploadError,  upload_success_handler : uploadSuccess,  upload_complete_handler : uploadComplete,  queue_complete_handler : queueComplete, // Queue plugin event    // SWFObject settings  minimum_flash_version : "9.0.28",  swfupload_pre_load_handler : swfUploadPreLoad,  swfupload_load_failed_handler : swfUploadLoadFailed }; swfu = new SWFUpload(settings);}</script></head><body><div id="header"> <h1 id="logo"><a href="../">SWFUpload</a></h1> <div id="version">v2.2.0</div></div><div id="content"> <h2>SWFObject Demo</h2> <form id="form1" action="index.php" method="post" enctype="multipart/form-data">  <p> This page demonstrates the SWFObject plugin.  Do each of the following (one at a time) to see the plugin work: </p>   <ul>    <li>Uninstall your Flash Player or install a version less than 9.0.28</li>    <li>Cause the SWF file to fail to load by deleting or renaming swfupload.swf (simulating a very slow or failed download)</li>    <li>Disable JavaScript</li>   </ul>  <p>   Each of these tests demontrate how these issues can be handled by SWFUpload and the SWFObject libraries.  </p>  <div id="divSWFUploadUI">   <div class="fieldset  flash" id="fsUploadProgress">   <span class="legend">Upload Queue</span>   </div>   <p id="divStatus">0 Files Uploaded</p>   <p>    <span id="spanButtonPlaceholder"></span>    <input id="btnCancel" type="button" value="Cancel All Uploads" disabled="disabled" style="margin-left: 2px; height: 22px; font-size: 8pt;" />    <br />   </p>  </div>  <noscript>   <div style="background-color: #FFFF66; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px;">    We're sorry.  SWFUpload could not load.  You must have JavaScript enabled to enjoy SWFUpload.   </div>  </noscript>  <div id="divLoadingContent" class="content" style="background-color: #FFFF66; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px; display: none;">   SWFUpload is loading. Please wait a moment...  </div>  <div id="divLongLoading" class="content" style="background-color: #FFFF66; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px; display: none;">   SWFUpload is taking a long time to load or the load has failed.  Please make sure that the Flash Plugin is enabled and that a working version of the Adobe Flash Player is installed.  </div>  <div id="divAlternateContent" class="content" style="background-color: #FFFF66; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px; display: none;">     </div> </form></div></body></html>

?

コアハンドラー php コード

if (isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) {    $upload_file = $_FILES['Filedata'];    $file_info   = pathinfo($upload_file['name']);    $file_type   = $file_info['extension'];    $save        = 'image/' . md5(uniqid($_FILES["Filedata"]['name'])) . '.' . $file_info['extension'];    $name        = $_FILES['Filedata']['tmp_name'];     if (!move_uploaded_file($name, $save)) {        exit;    }     //将数组的输出存起来以供查看    $fileName = 'test.txt';    $postData = var_export($file_info, true);    $file     = fopen('' . $fileName, "w");    fwrite($file,$postData);    fclose($file);}

?

swfUpload 注意事項

swfuplaod はアップロード時に新しいプロセスを開きますが、元のプロセスは一貫性がありませんこの問題を解決するには、session_id を指定し、投稿された session_id がある場合は session_id ($_POST['PHP_SESSIONID']) 関数を使用してそれを指定する必要があります。

アップロード ページの JS で、現在の SESSION_ID を取得できます。

たとえば、アップロードページの JS:

post_params: {"PHPSESSID": "<?php echo session_id(); ?>"},

?

検証判定ページ:

         if (isset($_POST["PHPSESSID"])) {            session_id($_POST["PHPSESSID"]);        }

?

(この段落はインターネット上のコメントです: SWFUpload はセッション検証のある Web サイトのバックグラウンドでは正常に動作しません。これは、SWFUpload がアップロード時に新しいセッション プロセスを再度開くことと同等であるため、比較することはできません。元のプログラムのセッション。一貫性を保つために、アップロード時に元のプログラムのセッション ID を渡し、それを使用して適切なセッションを「取得」する必要があります。

デモのダウンロード アドレス: http://dl. iteye.com/.topics/download/b6351ce4-b3e3-30a3-b8af-eda7b98a1c79

?

?

?

?

?

?

?

?

?

?

?

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