0

メディア プレーヤーを使用して再生するために、サーバー上のファイルのファイル パスをクライアントに送信したいと考えています。ソケットを使用せずsrcに要素の属性に連結するために、クライアント側でその文字列を取得するにはどうすればよいですか?<video

サーバー スニペット:

res.set('content-type', 'text/plain');
res.send('/files/download.mp4');
4

3 に答える 3

1

これは、フレームワークなしでサーバーにリクエストを送信する方法です。「/path_to_page」は、リクエストを処理することになっているページに設定したルートです。

var xhr = new XMLHttpRequest();
xhr.open('GET', '/path_to_page', true);
xhr.onload = function(e) {
if (this.status == 200) {
  console.log(this.responseText); // output will be "/files/download.mp4"
}
};

xhr.send();
}

いくつかのパラメーターを送信することもできます。

var formdata = new FormData();
formdata.append("param_name", "value");

たとえば、ファイル名などを送信したい場合があります。

最初のコード スニペットから 2 行を変更するだけです。1つは

 xhr.open('POST', '/path_to_page', true); // set to post to send the params

 xhr.send(formdata); // send the params

サーバーでパラメーターを取得するには、エクスプレスを使用している場合、それらは req.body.param_name にあります

于 2013-01-02T08:53:13.397 に答える
0

どのフレームワークを使用していますか?プロジェクトディレクトリのベースパスをajaxで宣言し、その後にファイルを宣言できます。

jQuery.ajax({
type: "GET",
url: "/files/download.mp4",

});

于 2013-01-02T08:20:52.430 に答える
0

express(on node) を使用しているため、 socket.ioを使用できます。

サーバ:

var io = require('socket.io').listen(80),
    fs = require('fs');

io.sockets.on('connection', function (socket) {
   socket.on('download', function(req) {
      fs.readFile(req.path, function (err, data) {
         if (err) throw err;

         socket.emit('video', { video: data });
      });
   });
});

クライアント:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');

  ...      
  // request a download
  socket.emit('download', { path: '/files/download.mp4' });

  // receive a download
  socket.on('video', function (data) {
    // do sth with data.video;
  });
  ...
</script>

編集:ソケットを使用したくないことに気づきませんでした。それでも、それは実行可能な解決策です。

于 2013-01-02T11:49:08.317 に答える