gpt4 book ai didi

ios - 将文件上传到表单并使用 REST api 提交

转载 作者:行者123 更新时间:2023-11-30 13:52:05 24 4
gpt4 key购买 nike

我的问题是我需要将文件上传到服务器(使用 swift 和 REST),然后将其上传到设备。在服务器上,我有一个表单(html,js),它可以通过使用 POST 请求分块发送文件来处理到设备的上传。所以看来我有两个选择。

1)我可以完全跳过表单并直接发布到设备,但我必须处理文件切片,并在客户端快速发送数据 block ,或者

2) 我可以以某种方式使用 REST api 将文件上传到表单中的输入,然后再次使用 REST 提交表单,从而允许服务器处理设备之间的事务。

如果选项 2 不可行,我可以处理选项 1,但我真的希望选项 2 是可能的,而且我在这方面的经验很少。

表格如下:

HTML:

<html>
<head>
<link rel="stylesheet" href="mystyle.css">
<script type="text/javascript" src="//jsSrc"></script>
</head>
<body>
<div class="upgrade_panel">
<input class="file_selector" type="file" name="fileImage" id="firmware_image"></input>
<button class= "upgrade_button" type="button" id="upgradeButton" onclick="send_file_in_chunks()" >Start upgrade</button>
</div>
</html>

Javascript:

function send_file_in_chunks(){
var file = document.getElementById("firmware").files[0];
var tmp = file.name.split(".");
var app_index = tmp[1];
var upgrade_chunk_url_with_query;
var current_pos = 0;
var size = file.size;
var expected_md5 = //expected_md5

if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
upgrade_chunk_url_with_query = "upgrade_chunk.html" + "?" + "offset=" + current_pos + "&" + "filesize=" + size + "&" + "appindex=" + app_index + "&" + "expected_md5=" + expected_md5;
xhr.open('POST', upgrade_chunk_url_with_query , true);
xhr.onreadystatechange= send_function;

function send_function() {
if ( (xhr.readyState==4 && xhr.status==200) ) {
//Send some data
} else {
if ( (xhr.readyState==4 && xhr.status== 0) ) {
//Re-send some data
}
}
}

如有任何反馈,我们将不胜感激。

最佳答案

那么,“大数据”到底有多大呢? 100MB的文件对于当前的设备来说并不是不合理的,10MB或更少的文件根本不算大。

有时会进行切片,以便在传输中断时可以恢复,AWS 就是一个例子。

如果数据太大而无法完全放入内存,请考虑使用流式传输到文件。

关于ios - 将文件上传到表单并使用 REST api 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34139885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com