台灣最大程式設計社群網站
線上人數
1088
 
會員總數:246276
討論主題:189811
歡迎您免費加入會員
討論區列表 >> CSS/HTML5/Bootstarp >> 如何讓FLASH 值(檔案) POST至網頁
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何讓FLASH 值(檔案) POST至網頁
價值 : 150 QP  點閱數:2866 回應數:9
樓主


中級專家
3860 44
1782 356
發送站內信

各位大家好:

小弟遇到一個問題,請大家幫忙
下面是一個Action Script3.0
很簡單的function
將_file裡的mp3,預設ABC名稱透過saveLis觸發做另存新檔的動作

現在我想將 _file的值(檔案) POST到的網頁上
HTTP 表單送出方法通常 GET 或 POST 作業。
我輸出的檔案為MP3理用URLRequestMethod.POST。

但是我參考了很多方法都不成功,


請問在Action Script3.0語法要怎麼寫了,或是給我一些方向進行謝謝

這個CASE對我很棘手,請大家幫幫忙謝謝



本篇文章發表於2012-02-29 11:18
== 簽名檔 ==
或許,別人的問題不是問題,你的問題就是問題。
或許,你的問題不是問題,別人的問題就是問題。
或許,你我都沒有問題,學習才是問題。
1樓
作者回應


檢舉此回應
各位大大小弟真的遇到困難,
因為 URLRequestMethod不太會用 請大家幫幫忙

這是我下午想的還是不成功
主要將 player.data內的mp3 POST到test.asp
name值要為filename




一般透過HTML 用file表單 就可以完成這個動作




希望大家看得懂我的意思







本篇文章回覆於2012-02-29 18:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

香帥
檢舉此回應
您的程式好像少了一行關鍵指令
請在1樓程式第5行與第六行中間多加一行
navigateToURL(url);
再試看看可不可以
本篇文章回覆於2012-02-29 23:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應


檢舉此回應
謝謝香帥的提醒
經過這幾天的研讀跟測試

POST原理我已經完成,架構給大家做參考




不過我似乎遇到更麻煩的事情,上述作法如果只是單純的數值變數OK

但是我遇到的是要將 player.data(mp3檔) 直接上傳至 test.asp

但是我從TEST.asp下指令去觀察實際檔案的狀況


ABC.mp3名稱 ASP是讀到了
但是實際 player.data ASP似乎看不懂 FLASH 所post結果的值(還是檔案我也不知道)
好像要利用 FileReference.upload() 的形式進行。

看來我要在多K一下相關範例
不知道有沒有大大遇過類似的問題










本篇文章回覆於2012-03-01 19:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

香帥
檢舉此回應
upload file可參考以下程式
var fileRef:FileReference = new FileReference();
fileRef.addEventListener(Event.SELECT, selectHandler);
fileRef.addEventListener(Event.COMPLETE, completeHandler);
try
{
var success:Boolean = fileRef.browse();
}
catch (error:Error)
{
trace("Unable to browse for files.");
}
function selectHandler(event:Event):void
{
var request:URLRequest = new URLRequest("http://www.[yourdomain].com/fileUploadScript.cfm")
try
{
fileRef.upload(request);
}
catch (error:Error)
{
trace("Unable to upload file.");
}
}
function completeHandler(event:Event):void
{
trace("uploaded");
}
本篇文章回覆於2012-03-02 00:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應


檢舉此回應

香帥謝謝回應

您提供的範例我知道
因為FileReference 是屬於 import flash.net.FileReference 的物件
要做FileReference upload() 之前,一定要針對FileReference 做定義
意思就是要把檔案變數,放在FileReference。
我看大家都先用browse()本機上傳的方式,
跟我mp3檔案已經預存在 player.data 不太一樣。

現在我卡在 player.data 的檔案丟不到FileReference型態的變數
所以根本沒辦法使用 upload

以下是我試的方法給大家做參考




我不知道是不是我觀念錯誤@@
大家協助幫忙~~
本篇文章回覆於2012-03-02 16:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應


檢舉此回應
我先試試香帥您提供的範例(感謝)
我怎麼沒想過先用試試(現在有點汗顏)
FLASH UPLOAD 本機上傳 FOR ASP 的方法呀
本篇文章回覆於2012-03-02 17:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應


檢舉此回應
香帥您好:
您提供的範例會出現
SecurityError: Error #2000: 無使用中的安全性內容。的訊息
可能是我套錯我在試試,或是煩請您抽空協助看看


另外我有些發現給大家做些參考。



上述的做法,有沒有可能將ASP所讀到的 ByteArray資料直接在ASP文件轉成.mp3的可能性呢?

本篇文章回覆於2012-03-03 11:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應


檢舉此回應

更進一步釐清以下是我的心得提供給大家參考

1.官方已經有明確的說明FileReference物件,雖有支援upload但此物件並沒有支援ByteArray類型的資料/檔案)傳輸。所以我怎麼試upload都不成功就是如此,因為都是ByteArray檔案類型的關係。

2.但我還是一直搞不懂 FileReference.save() 明明支援ByteArray另存新檔到本機,卻無法支援 ByteArray型態upload讓我覺得很納悶。如果要以ByteArray檔案的方式進行上傳,新德大哥有提供了MultipartURLLoader 物件
http://blog.inspirit.ru/?p=139(新德大哥提供的資訊),此物件彌補了FileReference 無法ByteArray上傳的問題。但是我試了幾次,ByteArray圖片轉存可以,但是ByteArray的MP3轉存就會很多問題(可能我我撰寫程式功力不好),可能當時此物件設計是為了解決ByteArray 轉圖片的問題,最後有JPGEncoder物件更穩定些。

3.但是我提供的問題程式,裡面的player.data(MP3編碼),要怎麼傳到ASP接收資料呢?我看到很多PO文所建議,將ByteArray資料直接上傳到SERVER,在由SERVER處理ByteArray的資料。所以我暫時以method=URLRequestMethod.POST 進行ByteArray上傳到主機的動作。

4.因為我比較熟悉ASP,所以ByteArray上傳到ASP如何處理該資料型態呢?我發現ASP似乎不認識FLASH 傳來的ByteArray,尤其是Request幾乎是一面倒,怎麼試抓不是抓不到,就是的值都怪怪的。曾想說自己寫COM+排序陣列,但發現工程浩大能力所不及的,這也是我遇到很困擾的問題。不過很慶幸的我找到 SaveAs Method of ByteArray for ASP的物件,可處理ByteArray資料http://www.motobit.com/help/scptutl/cm119.htm,解決了在ASP無法處理ByteArray的問題。

5.目前雖暫時解決了目前我的問題,不過當我 ByteArray 進行 method=URLRequestMethod.POST 的動作時,ByteArray檔案超過200K似乎無法傳到ASP上,不知道是ASP 的問題還是 URLRequestMethod.POST的問題待我釐清,不知道這方面有沒有朋友,有這方面的心得。

以上是我的心得提供給大家參考。
本篇文章回覆於2012-03-06 09:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應


檢舉此回應
URLRequestMethod.POST 資料太大的問題,原來是win2003 上傳預設值的問題 ASPMaxRequestEntityAllowed

1.先打開IIS管理器

2.關閉iis admin service服務
找到windows\system32\inesrv\下的metabase.xml,打開找到ASPMaxRequestEntityAllowed 把它修改為需要的值,
預設為204800,即200K,把它修改為204800000(自訂需要)。
然後重開iis admin service服務
本篇文章回覆於2012-03-06 10:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.