我正在开发一个Web应用程序.用户可以使用HTTP协议上传文件.经典的HTML文件上传控件和用于上传文件的Java小程序之间有一个选择.
经典的HTML文件上传不是很好,因为你一次只能选择一个文件,而且在实际上传过程中很难获得任何进度指示(我最终使用定时器刷新了一个进度指示器,其中包含从中获取的数据)服务器通过AJAX调用).优点:它始终有效.
使用Java applet,我可以做更多的事情:一次选择多个文件(甚至是文件夹),压缩文件,获得真正的进度条,在applet上拖放文件等等......
但是有一些缺点:
UrlConnection使用HTTPS 的Java 类中存在错误,因此我使用Apache通用HTTP客户端来执行实际的HTTP上载.这是一个非常大的包,减慢了.jar文件的下载速度 我一直在维护这个Java applet但是现在我已经厌倦了所有的缺点,并考虑编写/购买一个全新的组件来上传这些文件.
题
如果您有以下要求:
你会使用什么技术/组件?
编辑:
假设我有一个600x600的BitmapData,我想将其缩小到100x100.
Flash在C# WinForms应用程序中显示内容的最佳方法是什么?我想创建一个PictureBox能够显示图像和flash内容的用户控件(类似于当前).
能够从排序流而不是磁盘上的文件加载闪存内容会很棒.
我有一个嵌入flash电影里面的一个div,我在主div中放了一个javascript onclick事件处理程序,但是没有抓到点击,有什么问题?
码:
<div id="top-box-player" onclick="alert('Hi Bananas!');">
<object width="400" height="300">
<param name="movie" value="general.swf">
<embed src="./swf/general.swf" width="400" height="300">
</embed>
</object>
</div>
Run Code Online (Sandbox Code Playgroud) 将konami代码实现到flex应用程序的最佳方法是什么?
我想创建一个组件,将其添加到我的所有proyects上,只是为了好玩.
谢谢
更新:感谢ZaBlanc,我制作了一个简单的组件
<?xml version="1.0" encoding="utf-8"?>
<mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Metadata>
[Event(name="success", type="flash.events.Event")]
</mx:Metadata>
<mx:Script>
<![CDATA[
// up-up-down-down-left-right-left-right-B-A
public static const KONAMI_CODE:String = "UUDDLRLRBA";
// signature
private var signatureKeySequence:String = "";
private function init():void{
systemManager.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
private function onKeyDown(event:KeyboardEvent):void{
var keyCode:int = event.keyCode;
switch (keyCode) {
case Keyboard.UP:
signatureKeySequence += "U";
break;
case Keyboard.DOWN:
signatureKeySequence += "D";
break;
case Keyboard.LEFT:
signatureKeySequence += "L";
break;
case Keyboard.RIGHT:
signatureKeySequence += "R";
break;
case 66: //Keyboard.B only for AIR :/
signatureKeySequence += …Run Code Online (Sandbox Code Playgroud) 我有视频,我已转换为FLV格式.我宁愿在我自己的网站上托管它,也不愿使用像YouTube这样的服务.什么是最容易使用的玩家?我想把播放器的.swf文件放在我服务器的某个地方,并将视频作为参数提供给它.
使用ASP.NET流式传输文件的最佳方法是什么?
似乎有各种方法,我目前在http处理程序中使用Response.TransmitFile()方法,该方法直接将文件发送到浏览器.这用于各种事情,包括从Webroot外部发送FLV到嵌入式Flash视频播放器.
但是,这似乎不是一种可靠的方法.特别是,Internet Explorer(7)存在一个奇怪的问题,浏览器只是在观看一两个视频后挂起.单击任何链接等都没有任何效果,并且在网站上重新运行工作的唯一方法是关闭浏览器并重新打开它.
这在其他浏览器中也会发生,但更不频繁.基于一些基本的测试,我怀疑这与文件流的方式有关...也许连接没有正确关闭,或者沿着这些线路.
在尝试了几个不同的东西后,我发现以下方法对我有用:
Response.WriteFile(path);
Response.Flush();
Response.Close();
Response.End();
Run Code Online (Sandbox Code Playgroud)
这解决了上述问题,查看视频不再导致Internet Explorer挂起.
但是,我的理解是Response.WriteFile()首先将文件加载到内存中,并且假设流式传输的某些文件可能非常大,这似乎不是一个理想的解决方案.
我很想知道其他开发人员如何在ASP.NET中传输大文件,特别是流式传输FLV视频文件.
我正在使用Satay方法在网页中嵌入Flash应用:
<object type="application/x-shockwave-flash" data="embeddy.swf"
id="embeddy" name="embeddy">
<param name="movie" value="embeddy.swf" />
</object>Run Code Online (Sandbox Code Playgroud)
我希望flash提供正确objectID的ExternalInterface.objectID,这意味着我需要设置name和的id属性object.
通常我会尽量避免使用HTML中的元素命名冲突,但在这种情况下将两个属性设置为相同的值是否有任何问题?
HTML表单怎么样?有没有人觉得将(n)(input| select| textarea)元素name和id属性设置为相同的值是值得的?
我的页面上有一个flash视频如下:
<script type="text/javascript">
var flashvars = {
};
var params = {
movie: "VideoMain.swf",
quality: "high",
bgcolor: "#000000",
allowScriptAccess: "always",
wmode: "transparent"
};
var attributes = {
id: "VideoMain",
name: "VideoMain",
classid: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
width: "100%",
height: "100%"
};
swfobject.embedSWF("./video/VideoMain.swf", "myVideoContent", "100%", "100%", "11.0.0","", flashvars, params, attributes);
</script>
<div id="myVideoContent">
<h1>Oooppsss....you need flash or a newer version of flash</h1>
<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>
Run Code Online (Sandbox Code Playgroud)
以上内容将附加到#VideoMain中
然后我有以下内容:
$('#X.click').click(function(e) {
var flash = document.getElementById("VideoMain");
flash.sendToActionScriptPublishVideo(true);
});
Run Code Online (Sandbox Code Playgroud)
这会因控制台错误而失败:
Uncaught Error: …Run Code Online (Sandbox Code Playgroud) 执行搜索时,我注意到了几个专门用于窃取/捕获访问者键盘焦点的问题.考虑到这个网站致力于编程并不令人惊讶.我想知道是否有人可以告诉我如何防止这种行为.丢失键盘焦点到闪存基本上会删除我的浏览器的功能,直到我使用鼠标点击其他地方(我使用Mozilla Firefox).有人知道某些插件或者关键字脚本会阻止我的键盘焦点被盗吗?通过必须使用鼠标将键盘焦点返回到浏览器,普通浏览器"快捷方式"变得无用.
编辑:回复下面的帖子,我确实有flashblock/noscript和其他一些东西.我的问题是闪光,我想看到/互动窃取我的焦点.基本上寻找的东西,我可以切换,以防止闪存获得键盘焦点或强制我的firefox键盘命令到浏览器
flash ×10
adobe ×2
html ×2
apache-flex ×1
asp.net ×1
bitmapdata ×1
c# ×1
embedding ×1
flv ×1
focus ×1
http ×1
image ×1
java ×1
javascript ×1
jquery ×1
keyboard ×1
macromedia ×1
object-tag ×1
onclick ×1
resize ×1
silverlight ×1
streaming ×1
swfobject ×1
upload ×1
video ×1
winforms ×1