當前位置:首頁 » 文件管理 » java上傳flash

java上傳flash

發布時間: 2023-08-18 12:48:35

⑴ flash和java的問題

flash和java交互需要有javascript 和flex的基礎。
一、在網頁中通過JavaScript調用Flash里的ActionScript:
可以通過ExternalInterface的addCallback方法,在Flash里注冊一個可以供網頁上的JavaScript或ActiveX調用的方法,具體代碼如下:

程序代碼

import flash.external.*;
var methodName:String = "PlayBB";
var instance:Object = null;
var method:Function = playB;
var ws:Boolean = ExternalInterface.addCallback(methodName, instance, method);

在JavaScript中調用時,需要為Flash所在的Object標簽設置一個ID,並且設置allowScriptAccess屬性,示例代碼如下:

程序代碼
<object id="topFlash" name="topFlash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="686" height="101">
<param name="movie" value="_top.swf" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="always" />
<embed allowScriptAccess="always" src="_top.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="686" height="101"></embed>
</object>

網頁中的JavaScript具體的調用示例:

程序代碼

function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}
else {
return document[movieName]
}
}
("topFlash").PlayBB();
二、在Flash的ActionScript中調用網頁里的JavaScript:
直接使用ExternalInterface的Call方法就可以了,示例代碼如下:

程序代碼

import flash.external.*;
var obj:Object = ExternalInterface.Call("JavaScript方法", "參數");

參數可以是任何As中的類型,在調用時Flash會自動封裝,多參數使用,分隔。

⑵ 怎樣上傳flash文件

第一步:用flashpaper軟體將word文檔轉換為flash文件,還沒有安裝flashpaper軟體,先網路下載並安裝flashpaper軟體。 雙擊flashprinter.exe打開程序主窗口,將需要轉換的word文檔直接拖動至窗口中,如下圖。

第六步:點擊「確定」按鈕,此時即可以瀏覽已上傳、編輯成功的flash文件了。

⑶ java實現文件上傳及進度條的幾種做法 詳細�0�3

4、剛剛提醒了我,還可以直接開發瀏覽器插件。 上述四種方法的比較: 1、開發簡單,由於要定時起一個HTTP 連接去獲得進度信息,因此,發生的連接請求也增多 ,另外,在低速的情況下,常常會出各種各樣的BUG,網路環境的差異,還造成那個周期很 難選擇。 2、開發較復雜,COMET 本身需要伺服器的支持,這樣TOMCAT 至少得選6.0,否則伺服器長連 接,壓力肯定受不了,但是,性能相對好一些,由於一次上傳實際上只啟動了兩個HTTP 鏈接 請求,比起AJAX 來說,那是要少很多請求了。另外一個優點是,COMET 將使得伺服器可以主 動將進度情況匯報給客戶端,因此,客戶端的進度條相對來說,要准確一點。 3、目前看來解決方案最好的一個了,雖然開發需要涉及到 FLASH、JAVASCRIPT、以及 JAVA 的 開發,但是代碼量都不是很多,因此,復雜程度相對屬於中等程度。但是FLASH 也有幾個問 題:第一、瀏覽器 FLASH 版本兼容問題,第二、FLASH 是通過獲得發送數據的進度來體現進度 條的,因此雖然不需要伺服器端開發進度部分的代碼,但是進度的展現有些不是很准確,經 常會有一開始速度很快,但是後面越來越慢的情況。 4、就不說了,開發肯定是最麻煩的,但是進度條效果肯定是最好的,但要給每種瀏覽器都 要搞個插件,還是比較痛苦的。 總結一下,希望對大家有幫助。 2 其實很麻煩的,之前試過,會有下面幾個問題: 第一、伺服器端一定要選擇支持HTTP 長連接的伺服器,否則操作系統的線程限制,會導致並 發降低。 第二、除非原來就採用的是COMET 的進度方式,否則,你要把周期獲得進度的方式,改成 COMET 的方式,那很郁悶的,COMET 要伺服器主動把進度信息用JAVASCRIPT 的方式發回客戶端 ,所以需要把結構轉化為JAVASCRIPT 調用才行。 第三、對於不同的瀏覽器,處理 JAVASCRIPT 的方式是不一樣的,我試驗的結果是,IE 會在收 到一定數量的JAVASCRIPT 之後才執行,所以雖然我在伺服器端每次都調用了flush 方法,但 是界面上還是需要等一段時間才能響應。而這段時間又不好控制了,因為上傳文件大小的不 一樣,導致了下發的JAVASCRIPT 數量也不一樣,所以基本很難達到FLASH 那樣的效果。 其實如果已經決定採用flash 了,那就不需要再去修改伺服器端的代碼了,因為那個進度信 息伺服器發不發都不會影響到代碼的執行,反正FLASH 本身已經提供了進度指示了,所以, 說簡單地,要改成FLASH 上傳,你直接做個FLASH 客戶端就好了,不需要再改伺服器端了。 對了,還有一種情況需要改伺服器端,那就是FLASH 上傳多個文件是採用多線程上傳的,因 此如果你一次上傳多個文件,那就需要改伺服器端了。需要在所有線程上傳完成的情況下, 再去修改資料庫

⑷ java上傳成功後怎麼觸發其他操作

java get方式非同步上傳_簡述Java非同步上傳文件的三種方式 原創
2021-02-13 16:31:03

yi bbbian

碼齡4年

關注
本文為大家分享了三種Java非同步上傳文件方式,供大家參考,具體內容如下

用第三方控制項,如Flash,ActiveX等瀏覽器插件上傳。

使用隱藏的iframe模擬非同步上傳。

使用XMLHttpRequest2來實現非同步上傳。

第一種使用瀏覽器插件上傳,需要一定的底層編碼功底,在這里我稿困就不講了,以免誤人子弟,提出這點大家可以自行網路。

第二種使用隱藏的iframe模擬非同步上傳。為什麼在這里說的是模擬呢?因為我們其實是將返回結果放在了一個隱藏的iframe中,所以才沒有使當前頁面跳轉,感覺就像是非同步操作一樣。

隱藏的iframe上傳文件
附件:

正在上傳...

// 上傳完成後的回調

function uploadFinished(fileName) {

addToFlist(fileName);

loading(false);

}

function addToFlist(fname) {

var temp = ["

",

fname,

"刪除",

"

"
];

$("#flist").append(temp.join(""));

}

function loading(showloading) {

if (showloading) {

$("#uptxt").show();

} else {

$("#uptxt").hide;

}

}

這基敬答種技術有兩個關鍵的地方:

1.form會指定target,提交的結果定向返回到隱藏的ifram中。(即form的target與iframe的name屬性一致)。

2.提交完成後,iframe中頁面與主頁面通信,通知上傳結果及服務端文件信息

如何與主頁面通信呢?

我們用nodejs在接收完了文件後返回了一個window.parent.主頁面定義的方法,執行後可以得知文件上傳完成。代碼很簡單:

router.post('/upload2', multipartMiddleware, function(req, res) {

var fpath = req.files.myfile.path;

var fname = fpath.substr(fpath.lastIndexOf('\\') + 1);

setTimeout(function {

var ret = ["

"window.parent.uploadFinished('" + fname + "');",

""];

res.send(ret.join(""搏慧));

}, 3000);

});

執行後可以打開開發人員選項,你會發現隱藏iframe中返回了伺服器的一些數據。

第三種使用XMLHttpRequest2來進行真正的非同步上傳。

還是先貼出代碼:

執行後可以打開開發人員選項,你會發現隱藏iframe中返回了伺服器的一些數據。第三種使用XMLHttpRequest2來進行真正的非同步上傳。還是先貼出代碼:

xhr level2 非同步上傳
附件:

正在上傳...

停止上傳

function upload {

// 1.准備FormData

var fd = new FormData;

fd.append("myfile", $("#myfile")[0].files[0]);

// 創建xhr對象

var xhr = new XMLHttpRequest;

// 監聽狀態,實時響應

// xhr 和 xhr.upload 都有progress事件,xhr.progress是下載進度,xhr.upload.progress是上傳進度

xhr.upload.onprogress = function(event) {

if (event.lengthComputable) {

var percent = Math.round(event.loaded * 100 / event.total);

console.log('%d%', percent);

$("#upprog").text(percent);

}

};

// 傳輸開始事件

xhr.onloadstart = function(event) {

console.log('load start');

$("#upprog").text('開始上傳');

$("#stopbtn").one('click', function { xhr.abort; $(this).hide();});

loading(true);

};

// ajax過程成功完成事件

xhr.onload = function(event) {

console.log('load success');

$("#upprog").text('上傳成功');

console.log(xhr.responseText);

var ret = JSON.parse(xhr.responseText);

addToFlist(ret.fname);

};

// ajax過程發生錯誤事件

xhr.onerror = function(event) {

console.log('error');

$("#upprog").text('發生錯誤');

};

// ajax被取消

xhr.onabort = function(event) {

console.log('abort');

$("#upprog").text('操作被取消');

};

// loadend傳輸結束,不管成功失敗都會被觸發

xhr.onloadend = function (event) {

console.log('load end');

loading(false);

};

// 發起ajax請求傳送數據

xhr.open('POST', '/upload3', true);

xhr.send(fd);

}

function addToFlist(fname) {

var temp = ["

",

fname,

"刪除",

"

"
];

$("#flist").append(temp.join(""));

}

function delFile(fname) {

console.log('to delete file: ' + fname);

// TODO: 請實現

}

function loading(showloading) {

if (showloading) {

$("#uptxt").show();

$("#stopbtn").show();

} else {

$("#uptxt").hide();

$("#stopbtn").hide();

}

}

代碼有點多,但是通俗易懂。使用過AJAX的人都知道,XHR對象提供了一個onreadystatechange的回調方法來監聽整個請求/響應過程。在XMLHttpRequest2級規范中又多了幾個進度事件。有以下6個事件:

1.loadstart:在接收到響應數據的第一個位元組時觸發。

2.progress:在接收響應期間持續不斷地觸發。

3.error:在請求發生錯誤時觸發。

4.abort:在因為調用abort方法而終止連接時觸發。

5.load:在接收到完整的響應數據時觸發。

6.loadend: 在通信完成或者觸發error,abort,load事件後觸發。

這次我們可以解讀代碼:當傳輸事件開始後,我們便在停止傳送按鈕上添加點擊事件,內置了abort方法可以停止傳送。若不點則會正常上傳直到傳送完畢為止。其後台代碼類似第二種方法。

三種方法各有優劣,做個簡單的小結吧。

第三方控制項交互性和可控性好,因為接近底層,其性能也是很優秀的。但是由於編寫難度大通常需要自己安裝插件,有時可能需要自己進行編寫。

隱藏的iframe方法我個人覺得是非常有思想的一個方法,iframe可以幫我們做很多事。這種方式具有廣泛的瀏覽器兼容性而且不需要安裝插件。但是它交互性差,上傳過程不可控,而且性能也是很一般的。

XHR2級的純ajax上傳,它必須要版本比較高一點的瀏覽器(ie9+)。但是它交互性特別好,可以看到上傳進度並且是可控的。

⑸ java web 項目如何實現視頻上傳然後播放功能

搞清楚兩個問題:上傳到自己的伺服器還是第三方平台?播放器實用Flash還是H5播放器?
如果是上傳到自己的伺服器,使用H5播放。那上傳視頻就和普通的文件上傳一樣。都是通過Http上傳。前端可以使用form表單上傳也可以使用ajax非同步上傳。後台可以使用apache的Common-fileUpload工具來解析並保存文件。然後生成一個訪問路徑。將訪問路徑返回給前端的 video標簽的src屬性即可。通過幾個簡單的屬性或腳本就能控制播放。
如果是上傳到第三方平台,例如騰訊視頻、愛奇藝、優酷等。他們都有開發者平台或者開放平台。一般都有一些jar工具類或者模板案例提供給你的。你上傳之後,也有返迴路徑給你。這是一般都是嵌入它們的Flash插件。所以你只需要將那段Flash插件的HTML代碼放入你的網頁中就可以播放了。好處是,不需要自己存儲。不需要准備播放器。壞處是,可能有廣告。不是可能。是一定會有。

⑹ 如何在JAVA中添加flash動畫

用的是
<object>
<embed src="你要添加的flash" width="寬" height="高">
</object>
就是這樣的

⑺ 請教Java怎樣實現跨伺服器文件上傳

你好!


另一台機器也要有處理文件上傳的WEB程序鄭慶,你可以喊蠢握參考Stream上傳插件(支持HTML5和Flash兩種方式上傳)


Stream 上傳插件

Stream 是解決不同瀏覽器上傳文件的插件,是Uploadify的Flash版和Html5版的結合!


Stream 簡介

Stream 是根據某網的文件上傳插件加工而來,支持不同平台(Windows, Linux, Mac, Android, iOS)下,主流瀏覽器(IE7+, Chrome, Firefox, Safari, 其他)的上傳工作,當然在Html5標准下,還支持文件檔如的斷點續傳功能,有效解決大文件的Web上傳問題!


主要特徵

1. 源碼完全開放,目前有Java、PHP、Perl三種後台語言實現


2. 支持HTML5、Flash兩種方式(跨域)上傳


3. 多文件一起上傳


4. HTML5支持斷點續傳,拖拽等新特性


5. 兼容性好IE7+, FF3.6+, Chrome*,Safari4+,遨遊等主流瀏覽器


6. 進度條、速度、剩餘時間等附屬信息


7. `選擇文件的按鈕`可以自定義


8. 簡單的參數配置實現 靈活多變的功能


9. 支持文件夾上傳(Chrome21+, Opera15+)


10. 支持自定義UI(V1.4+)


指定跨域上傳就可以了


這些都是小鳥雲的工程師告訴我的,建議你可以試試小鳥雲

⑻ 怎麼在java中使用flash

1.如果單獨的展示FLASH的話,那就直接引用。
2.如果結合JAVA和FLASH交互等操作的話,那就得使用FLEX了,FLEX可以跟JAVA進行
通信和交互,FLEX最終生成的就是FLASH文件SWF!

熱點內容
訪問的結果 發布:2025-02-01 22:30:12 瀏覽:173
cmd訪問網站 發布:2025-02-01 22:02:45 瀏覽:440
清除svn緩存 發布:2025-02-01 22:01:04 瀏覽:945
安卓模擬器怎麼用鍵盤操作 發布:2025-02-01 21:55:24 瀏覽:808
安卓手機屏幕為什麼會變色 發布:2025-02-01 21:55:20 瀏覽:823
安卓存摺怎麼看余額 發布:2025-02-01 21:53:34 瀏覽:770
其他電腦怎麼設置訪問伺服器 發布:2025-02-01 21:34:27 瀏覽:895
如何敲編程 發布:2025-02-01 21:26:13 瀏覽:24
微信加密嗎 發布:2025-02-01 21:26:07 瀏覽:43
c語言中的預處理命令 發布:2025-02-01 21:26:07 瀏覽:539