【发布时间】:2017-11-16 04:03:06
【问题描述】:
我们正在尝试从用 HTML / Javascript 编写的 JSP 前端上传歌曲 (.mp3) 文件。我们需要使用 websockets 上传到我们的 Java 后端。有没有人对我们如何做这件事有任何建议?
目前我们正在对我们的 JSP 文件做这样的事情:
<h1>Please Choose a Song file</h1>
<form name = "JSONUploadForm">
<input type = "file" name="file" accept = ".mp3"/> <br/>
<input type = "button" value = "Click to upload!" name = "button" onClick = "submitSong();"/>
</form>
然后我们有我们的javascript函数submitSong()
function submitSong(){
var songStuffs = document.getElementById("file");
console.log(songStuffs); --> we get "null" here
sendMessage(songStuffs);
alert("song sent");
}
function sendMessage(val, string) {
socket.send(string);
return false;
}
另外,这是我们连接到服务器的功能。但是,这可以正常工作。
function connectToServer() {
socket = new
WebSocket("ws://localhost:8080/Project/socket");
socket.onopen = function(event) {
console.log("connected!");
}
您还可以看到我们的服务器端(.java 文件):
@OnMessage
public void onMessage(String message, Session session) throws IOException, EncodeException {
FileWriter fw = new FileWriter(new File(songName + ".mp3"));
fw.write(song);
BufferedReader fr = new BufferedReader(new FileReader(songName + ".mp3"));
String data = fr.readLine();
System.out.println("Song: " + data); --> Here we get "song: null"
}
任何建议将不胜感激!
【问题讨论】:
-
您在此行中没有任何 ID
<input type = "file" name="file" accept = ".mp3"/>。请添加 id 属性并检查。 -
谢谢大家!我们现在将文件路径发送到服务器。但是,如何简单地将文件一起发送(不仅仅是路径)/访问文件中的数据?我们想将上传的歌曲保存到服务器。
-
如果要上传文件,则必须将表单对象发送到服务器。
-
我们会这样做: var songStuffs = document.getElementById("JSONUploadForm"); ?
-
请查看更新后的答案。
标签: javascript java html jsp websocket