【发布时间】:2014-12-06 16:59:43
【问题描述】:
我需要使用 base64 编码将较大的视频文件(和其他文件)发送到服务器。
我出现内存不足异常,因为我想将文件存储在内存中(在byte[] 中),然后使用Base64.encodeToString 将其编码为string。但是我怎样才能对文件进行编码并将其发送出去和/或使用更少的内存呢?或者我怎样才能做得更好?
对于我现在使用的请求MultipartEntityBuilder,在我构建它之后,我使用 post 方法将它发送到服务器,并且我还需要发送其他数据的文件。所以我需要同时发送一个请求,服务器只接受base64编码的文件。
或
因为我使用 Drupal 的 REST 模块从帖子中创建内容,如果我可以发送带有普通表单的普通帖子,这对我来说是另一种解决方案。 (就像浏览器一样)问题是,我找不到,只有一个解决方案。当您调用 <endpoint>/file url 并传递四件事时,它们是:
array("filesize" => 1029, // file size
"filename" => "something.mp4", //file name
"uid" => 1, // user id, who upload the file
"file" => "base64 encoded file string")
在这个请求之后我得到一个fid,它是上传文件的id。创建节点时,我需要将其与真实内容一起发送。如果我可以像浏览器在表单发送时那样以正常的发布模式(无编码)发送文件,那就更好了。
【问题讨论】:
-
如果您需要将图像(4-5MB)发送到服务器,我会给您解决方案。但我不熟悉视频到 base64 编码。
-
不,我需要发送更大的东西
标签: java android encoding base64 androidhttpclient