我正在尝试使用javascript(前端)和Java(后端)在服务器磁盘上保存一个文件。
JavaScript:
在javascript中,我有一个函数将文件分块并通过Ajax发送给Java。
null
var reader, file, slice_size = (1024**2)*5;
$(document).on("click", "#dbi-file-upload-submit", function(e){
e.preventDefault();
file = $("#dbi-file-upload")[0].files[0];
reader = new FileReader();
submit_file(0);
});
function submit_file(start){
let next_slice = start+slice_size;
let blob = file.slice(start, next_slice);
reader.onload = function(event){
let unit8 = new Int8Array(event.target.result);
console.log(unit8)
save_slice(unit8).done(function(res){
let size_done = start + slice_size;
let percent_done = Math.floor((size_done/file.size)*100);
if(next_slice < file.size){
$('#dbi-upload-progress').html(`Uploading File - ${percent_done}%`);
submit_file(next_slice);
}else{
$('#dbi-upload-progress').html(`Done !`);
}
});
}
reader.readAsArrayBuffer(blob);
}
function save_slice(slice){
var form = new FormData();
form.append("binary", slice);
return $.ajax({
url: '/Save.tstVideo',
type: 'POST',
processData: false,
contentType: false,
data: form
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<input id="dbi-file-upload" type="file"/><br><br>
<span id="dbi-upload-progress"></span>
<input id="dbi-file-upload-submit" class="button button-primary" type="submit" value="Upload" />
</form>
null
这是我第一次在Java编程,所以如果你有什么建议,请告诉我。
我试图在Java中创建一个函数,将ajax发送的块保存在TXT中。当javascript检测到最后一个块时,我想用Java将txt解码成文件。
这就是我试图在TXT中保存二进制文件的方法:
import java.io.*;
public class fileToDisk extends Function{
@Parameters("binary")
public boolean fileToDisk(String binary){
File file = new File("/userdata/videosmedia/test.txt");
try (FileOutputStream fos = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(fos); DataOutputStream dos = new DataOutputStream(bos)) {
dos.writeBytes(binary);
//System.out.println("Successfully written data to the file");
return true;
}catch (IOException e) {
e.printStackTrace();
return false;
}
}
}
我试着用base64做,但是编码的视频不能播放,有人建议我用二进制代替base64。
对于base64
,string
将是合适的类型,对于binary,byte[]
将是我所期望的类型。
此外,自Java 7以来,更方便的Java.nio.file.files
类可用,它具有更方便的编写方法。
在您的示例中,只需将接收到的字节[]
追加到给定文件(使用StandardOpenOption.Create
和StandardOpenOption.append
)。如果希望以某种方式标记未完成的文件,可以将其命名为filename.filetype.chunks
,然后在前端的最终请求中发送另一个变量(例如lastchunk=true
),然后相应地重命名文件。
对于不是*.txt
文件的文件,我非常不鼓励使用*.txt
文件扩展名。始终保持适当的延伸。
然而,该算法只适用于来自前端的顺序调用。
问题内容: 假设我有一个如下所示的javascript对象: 我将其字符串化以转换为JSON。如何将此JSON保存到本地文本文件,以便可以在记事本等中打开它。 问题答案: Node.js: 浏览器(webapi):
问题内容: 在Java中,我来自一个名为“ text”的String变量中的文本字段中的文本。 如何将“文本”变量的内容保存到文件中? 问题答案: 如果你只是输出文本,而不是任何二进制数据,则可以执行以下操作: 然后,将String写入其中,就像写入任何输出流一样: 与以往一样,你将需要异常处理。完成写作后,请务必致电。 如果你使用的是Java 7或更高版本,则可以使用“ 语句 ”,该语句将Pri
问题内容: 我有使用Spark生成的RDD。现在,如果我将此RDD写入csv文件,则可以使用“ saveAsTextFile()”之类的一些方法,该方法将csv文件输出到HDFS。 我想将文件写入本地文件系统,以便我的SSIS进程可以从系统中选择文件并将它们加载到DB中。 我目前无法使用sqoop。 除了编写Shell脚本之外,Java中是否还有其他地方可以做到这一点? 需要任何清晰度,请告知。
问题内容: 我使用以下代码将汉字保存到.txt文件中,但是当我用写字板打开它时,我看不懂它。 我能做什么 ?我知道如果将汉字剪切并粘贴到写字板中,可以将其保存到.txt文件中。如何在Java中做到这一点? 问题答案: 这里有几个因素在起作用: 文本文件没有用于描述其编码的内在元数据(就尖括号税而言,XML受欢迎是有原因的) Windows的默认编码仍然是8位(或双字节)“ ANSI ”字符集,其值
问题内容: 我是Python的新手。我需要从字典中查询项目并将结果保存到文本文件中。这是我所拥有的: 如何将打印的输出保存到文本文件? 问题答案: 让我总结所有答案并添加更多答案。 要从脚本中写入文件,需要使用Python提供的用户文件I / O工具(这是东西。 如果不想修改程序,则可以使用流重定向(在Windows和类似Unix的系统上)。这是东西。 如果您想 同时 在屏幕和日志文件中看到输出,
问题内容: 我想将HtmlUnit cookie保存到一个文件,然后在下一次运行时从该文件中加载它们。我怎样才能做到这一点?谢谢。 问题答案: