我想在Web服務期間顯示上傳文件大小。所以我已經使用了以下兩個鏈接HttpClient Post with progress and MultipartEntityBuilder,gradle-hockeyapp-plugin,其中我找到了ProgressHttpEntityWrapper.java
類。使用這個類我找到了上傳文件的大小。使用下面的方法實際的文件大小和上傳文件大小有所不同android
public String getFileSize(long size) {
if (size <= 0)
return "0";
final String[] units = new String[] { mContext.getResources().getString(R.string.bytes), mContext.getResources().getString(R.string.kilo_bytes), mContext.getResources().getString(R.string.mega_bytes), mContext.getResources().getString(R.string.giga_bytes), mContext.getResources().getString(R.string.tera_bytes) };
int digitGroups = (int) (Math.log10(size)/Math.log10(1024));
return new DecimalFormat("#,##0.#").format(size/Math.pow(1024, digitGroups)) + " " + units[digitGroups];
}
但它會給出比原始文件大小錯誤的文件大小比較。實際文件大小和上傳文件大小都不相同。
例如,我的實際文件大小爲297.1 KB,但顯示的文件總大小爲365.5 KB。爲什麼實際的文件大小和上傳總文件大小有所不同。你能不能告訴我任何想法?
你的意思是你的函數返回的字符串與你傳遞的字符長度不符? – wutzebaer
@wutzebaer不,請檢查第二個鏈接,您將在其中找到ProgressHttpEntityWrapper類。在那個類中,它返回方法getCurrentProgress()內的總字節數。它是不正確的。它與實際文件大小不同。 – Sangeetha
可能偏移+ len是更大的tan b.length,因此只有len的一部分被寫入?# – wutzebaer