簡體   English   中英

上傳期間文件大小增加

[英]file size increased during upload

我正在使用httpclient上傳文件。 上載后,文件大小會更改。 在文件上傳過程中,一些額外的內容會添加到文件中。

在上傳文件之前,文件包含:

hi this is vipin check

上傳后,文件包含:

--j9q7PmvnWSP9wKHHp2w_KCI4Q2jCniJvPbrE0
Content-Disposition: form-data; name="vipin.txt"; filename="vipin.txt"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary

hi this is vipin check
--j9q7PmvnWSP9wKHHp2w_KCI4Q2jCniJvPbrE0--

為什么文件大小在變化? 為什么要添加這些多余的內容?

我的httpclient代碼是:

HttpPut httppost = new HttpPut(URIUtil.encodeQuery(newUrl));
httppost.setHeader("X-Auth-Token", cred.getAuthToken());
httppost.addHeader("User-Agent", "NetMagic-file-upload");
System.out.println("Dest : " + dest.getAbsolutePath());

MultipartEntity mpEntity = new MultipartEntity();
ContentBody cbFile = (ContentBody) new FileBody(src);
mpEntity.addPart(dest.getName(), cbFile);
httppost.setEntity(mpEntity);
System.out.println("executing request " + httppost.getRequestLine());

HttpResponse response = httpclient.execute(httppost);

似乎正在發生的事情是,客戶端將要上傳的文件作為多部分實體發送,但是服務器將其視為純文件。 目前尚不清楚故障所在。

  • 服務器可能會忽略請求標頭中的內容類型。 這很可能是servlet(或其他任何原因)中負責處理上傳請求的錯誤。

  • 客戶端可能沒有在請求標頭中設置內容類型。 我曾希望客戶端庫能夠為您解決這一問題。 但是您可能需要明確地執行此操作。

我建議您查看請求標頭,它們是由客戶端發送或由服務器接收的,以查看是否存在適當的多部分內容類型。 這將幫助您確定問題所在。


但是有一個明顯的解決方案。 如果服務器無法處理多個部分,請更改客戶端以不發送它們。

您正在執行PUT請求,但是您的客戶端使用HTML表單帖子中常用的分段編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM