配色: 字号:
PHP swfupload图片文件上传实例代码
2016-08-20 | 阅:  转:  |  分享 
  
PHPswfupload图片文件上传实例代码

swfupload是一个flash插件它可以结合php来快速实现图片文件无刷新上传,同时还可以批量上传图片,下面我来给大家介绍PHPswfupload图片文件上传实例代码有需要了解的中参考。

效果图



index.php文件

?代码如下 复制代码 SWFUploadDemos-SWFObjectDemovarswfu;

SWFUpload.onload=function(){?varsettings={??flash_url:"../swfupload/swfupload.swf",??upload_url:"upload.php",??post_params:{???"PHPSESSID":"NONE",???"HELLO-WORLD":"HereIAm",???".what":"OKAY"??},??file_size_limit:"100MB",??file_types:".jpg;.gif;.png;.jpeg;",??file_types_description:"AllFiles",??file_upload_limit:100,??file_queue_limit:0,??custom_settings:{???progressTarget:"fsUploadProgress",???cancelButtonId:"btnCancel"??},??debug:false,

??//ButtonSettings??button_image_url:"XPButtonUploadText_61x22.png",??button_placeholder_id:"spanButtonPlaceholder",??button_width:61,??button_height:22,

??//Theeventhandlerfunctionsaredefinedinhandlers.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,?//Queuepluginevent????//SWFObjectsettings??minimum_flash_version:"9.0.28",??swfupload_pre_load_handler:swfUploadPreLoad,??swfupload_load_failed_handler:swfUploadLoadFailed?};

?swfu=newSWFUpload(settings);}

?SWFUpload?v2.2.0



?

SWFObjectDemo

???

ThispagedemonstratestheSWFObjectplugin.?Doeachofthefollowing(oneatatime)toseethepluginwork:

???
    ????
  • UninstallyourFlashPlayerorinstallaversionlessthan9.0.28
  • ????
  • CausetheSWFfiletofailtoloadbydeletingorrenamingswfupload.swf(simulatingaverysloworfaileddownload)
  • ????
  • DisableJavaScript
  • ???
??

???EachofthesetestsdemontratehowtheseissuescanbehandledbySWFUploadandtheSWFObjectlibraries.??

????????UploadQueue??????0FilesUploaded

???

????????????
???

?????????SWFUploadisloading.Pleasewaitamoment...???????SWFUploadistakingalongtimetoloadortheloadhasfailed.?PleasemakesurethattheFlashPluginisenabledandthataworkingversionoftheAdobeFlashPlayerisinstalled.?????????? 核心处理程序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,然后在登录页面判断,如果有post过来的session_id,那么就用函数session_id($_POST[''PHP_SESSIONID''])指定一下。

上传页的JS里面,可以获取当前的SESSION_ID的。

例如上传页的JS中:

?代码如下 复制代码 post_params:{"PHPSESSID":""}, 在验证的判断页中:

?代码如下 复制代码 ???????if(isset($_POST["PHPSESSID"])){???????????session_id($_POST["PHPSESSID"]);???????} (这一段是网上的注释:在带有Session验证的网站后台中SWFUpload无法正常工作,这是因为SWFUpload在上传时相当于重新开辟了一个新的Session进程,因此无法与原有程序的Session保持一致,这就需要在上传时传递原有程序的SessionID,根据它来“找回”其应有的Session。)



献花(0)
+1
(本文系网络学习天...首藏)