标签: multipart

iOS 7 - NSURLSession Resumable Uploads

我目前正在设计一个系统,用于从应用程序将多个图像上传到服务器.这些文件将存储在本地设备上,当前的想法是将它们分成块,然后将它们逐块上传到服务器,在上传下一个之前等待成功消息.

这个过程对于用户来说应该是无缝的,他们应该按下按钮来提交所有图像,然后能够关闭应用程序并使其在后台继续.在iOS 7中,我看到您可以将上传内容传递给新的NSURLSession API,并让它独立于您的应用程序处理上传任务.

我想知道是否有人知道这种转移是多么可靠.如果我将整个图像传递给它,如果互联网连接中途下降会发生什么?后台传输服务是否会在以后重试?我们的想法是,我们可以上传一个图像,如果它在一半时间内失败,那么我们可以在以后重新开始连接时从那一点继续.

我们的一个想法是将文件拆分为块,然后将所有块作为单独的NSURLSessionUploadTasks传递,并假设它们最终都将被发送到服务器.

另一个是发送第一个块使用:

uploadTaskWithRequest:fromData:completionHandler:
Run Code Online (Sandbox Code Playgroud)

然后在completitionHandler中发送下一个块.我的问题是,如果在后台,下一个块将拥有它

@property BOOL discretionary = true
Run Code Online (Sandbox Code Playgroud)

这意味着它只会在插入时通过WiFi发送.我需要这可以在所有网络上工作并能够应对中断.

我不想要任何代码,只是建议这是否是实现这一目标的正确方法.

file-upload multipart ios ios7 nsurlsession

13
推荐指数
1
解决办法
4817
查看次数

使用@RequestParam进行多部分文件是正确的方法吗?

我正在开发一个spring mvc应用程序,我想在我的控制器中处理多部分请求.在请求我MultiPartFile 也通过,目前我正在使用@RequestParam文件paramaeter,方法看起来像,

@RequestMapping(method = RequestMethod.POST)
public def save(
        @ModelAttribute @Valid Product product,
        @RequestParam(value = "image", required = false) MultipartFile file) {
    .....
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在我的服务中运行良好,文件正在服务器端.现在在某处我看到,如果文件需要使用@RequestPart注释而不是@RequestParam.@RequestParam用于文件有什么不对吗?或者它将来可能会导致任何错误?

java spring spring-mvc multipart spring-boot

13
推荐指数
2
解决办法
1万
查看次数

将图像上传到Multipart中的服务器以及Android中的JSON数据

我正在尝试将图像上传到服务器以及从表单收集的一些JSON数据.

服务器有身份验证.

METHOD: post

HEADERS:

Authorization   Basic d2Vic2VydmljZTpyM05hdTE3Rw==

Content-Type    multipart/form-data;boundary=xxxxxxxx

BODY:

--xxxxxxxx

Content-Disposition: form-data; name="jsonFile"
Content-Type: application/json

{"model":"Premium","deviceLongitude":4.79337638,"pseudo":"nickname","deviceLatitude":45.7671507,"year":"2005","email":"email@mail.com","deviceLocale":"fr_FR","title":"my picture"}

--xxxxxxxx

Content-Disposition: form-data; name="imgName"
Content-Type: image/jpeg

//Image data array

/9j/4AAQSkZJRgABAQAAAQABAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAAB
AAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KAD
AAQAAAABAAACgAAAAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQH/wAARCAKAAeADAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAA
AAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF
--xxxxxxxx
Run Code Online (Sandbox Code Playgroud)

android image multipart

12
推荐指数
1
解决办法
4万
查看次数

如何在python中发送带有请求的"multipart/related"?

我正在尝试使用Python中的请求发送多部分/相关消息.该脚本看起来很简单,只是请求似乎只允许发送多部分/表单数据消息,尽管他们的文档没有明确说明这种或那种方式.

我的用例是发送带有附件的肥皂.我可以提供一个字典,其中包含两个文件,其内容是测试soap消息,以及我正在尝试发送的测试文档.第一个包含带有所有指令的soap消息,第二个是实际文档.

但是,如果我没有指定标头值,则在使用files选项时,请求似乎只使用multipart/form-data.但是,如果我在尝试指定不同的多部分类型时指定标题,则请求似乎不会添加到mime边界信息中.

url = 'http://10.10.10.90:8020/foo'
headers = {'content-type': 'multipart/related'}
files = {'submission': open('submission_set.xml', 'rb'), 'document': open('document.txt', 'rb')}
response = requests.post(url, data=data, headers=headers)
print response.text
Run Code Online (Sandbox Code Playgroud)

有没有办法使用请求完成此操作?还是我应该看到另一种工具?

python mime multipart python-requests

12
推荐指数
2
解决办法
5124
查看次数

Android okHttp addFormDataPart动态为多个图像

您好AndroidUploaders,

我已经给出了回答使用OkHttp在multipart中上传一个大文件,但我坚持使用多个图像上传.

我想一次动态上传1到10张图片.

RequestBody requestBody = new MultipartBuilder()
                    .type(MultipartBuilder.FORM)
                    .addFormDataPart(KEY_PHOTO_CAPTION, photoCaption)
                    .addFormDataPart(KEY_FILE, "profile.png", RequestBody.create(MEDIA_TYPE_PNG, sourceFile))
                    .build();
Run Code Online (Sandbox Code Playgroud)

ArrayListPhotoCaption具有类captionPhotourlPhoto那么,如何可以addFormDataPart()

我想循环并调用这个函数多次ArrayList大小.

addFormDataPart()是否有动态使用的解决方案?

java android multipart image-uploading okhttp

12
推荐指数
2
解决办法
1万
查看次数

如何测试使用图像的 FastAPI api 端点?

我正在使用 pytest 来测试 FastAPI 端点,该端点以二进制格式输入图像,如

@app.post("/analyse")
async def analyse(file: bytes = File(...)):

    image = Image.open(io.BytesIO(file)).convert("RGB")
    stats = process_image(image)
    return stats
Run Code Online (Sandbox Code Playgroud)

启动服务器后,我可以通过运行调用来成功手动测试端点 requests

import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder

url = "http://127.0.0.1:8000/analyse"

filename = "./example.jpg"
m = MultipartEncoder(
        fields={'file': ('filename', open(filename, 'rb'), 'image/jpeg')}
    )
r = requests.post(url, data=m, headers={'Content-Type': m.content_type}, timeout = 8000)
assert r.status_code == 200
Run Code Online (Sandbox Code Playgroud)

但是,以以下形式设置测试:

from fastapi.testclient import TestClient
from requests_toolbelt.multipart.encoder import MultipartEncoder
from app.server import app

client = TestClient(app)

def test_image_analysis():

    filename = "example.jpg"

    m = MultipartEncoder( …
Run Code Online (Sandbox Code Playgroud)

python multipart pytest starlette fastapi

12
推荐指数
1
解决办法
7888
查看次数

Retrofit 2 Multipart POST请求向PHP发送额外的引号

使用Retrofit 2.0.1,我在Android App中定义的API接口中有一个调用函数:

@Multipart
@POST("api.php")
Call<ResponseBody> doAPI(
  @Part("lang") String lang,
  @Part("file\"; filename=\"image.jpg") RequestBody file
);
Run Code Online (Sandbox Code Playgroud)

我发送这样的请求:

Call call = service.doAPI("eng",imageFile);

其中imageFile是一个RequestBody与创建File对象.上传图片部分没有问题,而@Part("lang") String lang部分在服务器中得到额外的报价.

在PHP方面,它写如下:

$lang = trim($_POST['lang']);
Run Code Online (Sandbox Code Playgroud)

返回"eng".为什么在字符串周围有一个额外的双引号?

当然我可以删除尾随和引导双引号,但这样做很奇怪


相关问题:https://github.com/square/retrofit/issues/1210

php android multipartform-data multipart retrofit2

11
推荐指数
2
解决办法
3544
查看次数

Base64和Multipart有什么区别?

任何一个可以解释什么是优势 Base64,以及Multipart

我知道Multipart比Base64... 更快

但是仍然有很多开发人员正在使用Base64 ...我研究了这两个文档,但我不清楚,因为我的英语不好.

base64 android multipart

11
推荐指数
2
解决办法
8710
查看次数

Retrofit 2 带数据的多部分图片上传

大家好,我想通过 Retrofit2 发布图像和其他数据。我正在用一张图像发送数据。

所有其他信息都在存储,但我的图像没有存储。当我与邮递员一起测试时,它可以工作。

在此处输入图片说明

请指导我在我的代码中缺少的地方

这是有效的邮递员代码片段

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
RequestBody body = RequestBody.create(mediaType, "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\ntest6@gmail.com\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"password\"\r\n\r\n123456\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nTest\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"phone\"\r\n\r\n1234567890\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"image\"; filename=\"03.JPG\"\r\nContent-Type: image/jpeg\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--");
Request request = new Request.Builder()
  .url("https://"url"/api/v1/sign-up")
  .post(body)
  .addHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW")
  .addHeader("cache-control", "no-cache")
  .addHeader("postman-token", "2dd038d9-5f52-fcd0-9331-445eaf35c230")
  .build();

Response response = client.newCall(request).execute();
Run Code Online (Sandbox Code Playgroud)

以下是邮递员请求图片:

在此处输入图片说明

这是我的改造 api

    @Multipart
    @POST("sign-up")
    Call<SignUpResponse> getSignUpResponse(
            @Part("email") RequestBody email,
            @Part("password") RequestBody password,
            @Part("name") RequestBody name,
            @Part("phone") RequestBody phone,
            @Part MultipartBody.Part image
            //@Part("image") RequestBody image // i have …
Run Code Online (Sandbox Code Playgroud)

android multipart image-uploading retrofit2

11
推荐指数
1
解决办法
2万
查看次数

多部分/混合的电子邮件附件未显示,仅在Windows 10 Mail中显示

我通过Python email/ 发送的电子邮件有一个奇怪的问题smtplib

我正在尝试撰写包含以下内容的电子邮件:

  • 纯文本和HTML消息正文的替代方法
  • 内嵌在HTML正文中的图像
  • 单独的非内联附件

MIME结构的设置如下:

multipart/mixed
    multipart/alternative
        text/plain
        multipart/related
            text/html
            image/png - inline
    application/pdf - attachment
Run Code Online (Sandbox Code Playgroud)

Windows 10邮件客户端,我测试过的所有邮件客户端{在Android上的BlueMail,iOS邮件客户端,Roundcube}似乎都可以正常工作。出于某种原因,Windows 10内置邮件客户端似乎可以很好地显示嵌入式图像,但是看不到其他附件的痕迹。

我可以在Internet上找到的有限信息表明这是Windows 10邮件客户端的错误,但是我个人在此客户端中收到了其他电子邮件,包括内联附件和附件,它们显示得很好-因此,显然是某种可行的解决方法/替代消息结构。

因此,我的问题是:如何更改此邮件的格式,使其在所有相关的邮件客户端中正确显示?

我正在用Python编写这样的电子邮件:

message = MIMEMultipart("mixed")
message["From"] = ...
.
.
.
bodyText = "..."
bodyHTML = "..."
mailFrom = "..."
targetEmail = "..."
imageContent = ...

messageBody = MIMEMultipart("alternative")
messageBody.attach(MIMEText(bodyText, "plain"))

messageBodyHTML = MIMEMultipart("related")
messageBodyHTML.attach(MIMEText(bodyHTML, "html"))
messageImage = MIMEImage(imageContent)
messageImage.add_header("Content-Disposition", 'inline; filename="..."')
messageImage.add_header("Content-ID", "<id used in html body>")
messageBodyHTML.attach(messageImage) …
Run Code Online (Sandbox Code Playgroud)

python email mime multipart smtplib

11
推荐指数
1
解决办法
657
查看次数