相关疑难解决方法(0)

通过html格式上传大文件(超过2 GB)

有没有上传超过2 GB的文件,使用简单的html表单上传?以前我一直在使用分块通过silverlight上传大文件(将一个大文件分成多个段然后逐个上传段然后在服务器上重新组合段).

现在,我们要求我们只需要使用简单的html(尽管是GWT)表单上传.如果有任何方法可以通过这种方式实现大文件上传,请指导我.

如果使用简单的html无法做到这一点,那么有人可以指导我如何使用flex分段和上传文件吗?

html file-upload http large-files

38
推荐指数
2
解决办法
6万
查看次数

使用lighttpd重定向端口80上的websocket流量

我有一个托管在lighttpd上的网站,可在"www"子域访问.我还有一个聊天服务器在端口8124上侦听node.js和socket.io.

我希望所有客户端流量都发生在端口80上,方法是将所有请求重定向到"chat"子域到端口8124.所以我启用了mod_proxy并在lighttpd.conf中添加了:

$HTTP["host"] == "chat.myserver.com" {
    proxy.server = (
            "" => ((
                    "host" => "78.128.79.192",
                    "port" => "8124"
            ))
    )
}
Run Code Online (Sandbox Code Playgroud)

在客户端,当我连接到websocket时,

var socket = io.connect('http://chat.myserver.com');
Run Code Online (Sandbox Code Playgroud)

我从node.js得到了正确的消息:

debug - client authorized
info  - handshake authorized 6067470561567883577
debug - setting request GET /socket.io/1/websocket/6067470561567883577
debug - set heartbeat interval for client 6067470561567883577
debug - client authorized for 
debug - websocket writing 1::
Run Code Online (Sandbox Code Playgroud)

但浏览器出错:

Firefox can't connect to server ws://chat.myserver.com/socket.io/1/websocket/6067470561567883577
Run Code Online (Sandbox Code Playgroud)

当然,如果我直接连接到端口8124,一切正常:

var socket = io.connect('http://www.myserver.com:8124');
Run Code Online (Sandbox Code Playgroud)

但是,正如我所说,我希望所有客户端流量都在端口80上.它是否可能?

lighttpd websocket node.js socket.io

7
推荐指数
1
解决办法
8057
查看次数

将文件对象克隆到Web Worker

我正在尝试与Web Workers一起提高文件上传性能。我正在处理这篇文章中有关上传大文件的示例。我有一个(某种程度上)更完整的代码示例,该示例可在Chrome(36.0.1985.143)和Safari(7.0.3(9537.75.14))中工作,而在Firefox(31.0)中则无法工作。我没有共享的服务器代码,但是客户端代码足以查看浏览器是否在推动切片。根据MDN,File和FileList都是可克隆的对象,所以这是Firefox中的错误吗?

原始链接来自StackOverflow 上的这篇文章

在Firefox中,我遇到了一个错误:

(DataCloneError:无法克隆该对象。)

在这条线上:

worker.postMessage({
 'files' : files
});
Run Code Online (Sandbox Code Playgroud)

代码如下:

index.html

<html>
<head>

<script>


 var worker = new Worker('fileupload.js');
 worker.onmessage = function(e) {
  alert(e.data);
 }

worker.onerror = werror;

function werror(e) {
  console.log('ERROR: Line ', e.lineno, ' in ', e.filename, ': ', e.message);
 }
function handleFileSelect(evt) {
 evt.stopPropagation();
 evt.preventDefault();
    var files;
    if(evt.dataTransfer === undefined ){
        files = document.getElementById('files').files;
    }else{
        files = evt.dataTransfer.files||evt.target.files;
    }
 // FileList object.

 worker.postMessage({
 'files' : files
 });
 //Sending …
Run Code Online (Sandbox Code Playgroud)

javascript html5

5
推荐指数
0
解决办法
1600
查看次数