这应该是非常快的。目前,我有以下代码来将图像写入输出流,并将其上传到服务器:
OutputStream os = connection.getOutputStream();
BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file));
int totalBytes = fis.available();
for(int i = 0; i < totalBytes; i++) {
os.write(fis.read());
}等。(我知道用于写入数据的for循环是超级基础的,我会在将来做得更好,我只是想在这里让事情在一个基本的级别上工作)。
无论如何,正如您所看到的,我正在向流中写入一个文件并将其发送出去,这工作得很好。我的问题是,到目前为止我还没有办法传输正确的文件名。在php端,我只是设置了一个通用的时间戳文件名,我也不想在手机上使用默认的图片名称,上传的图片将包括上传的用户名,包括一个时间戳,我可以添加到php端。我只需要知道如何包含像namevaluepair这样的东西,其中包含用户名,因此在php端,文件名可以包含该字符串。谢谢!
编辑:不知道我为什么要说数据,它只是一个输出流……
发布于 2011-02-22 11:05:03
文件名通常在报头中发送。对于POST (通常是您在获取输出流时使用的内容类型),您应该有一个multipart/form-data的content-type,并且每个part都有一个content-disposition头。对于与文件对应的部分(在本例中是唯一的部分),content-disposition标头应该有一个filename="foo.txt"组件。然后,服务器将内容保存在一个临时文件中,并将content-disposition头中包含的信息传递给您的脚本(以及访问上传文件本身的方法)。
详情请参见RFC 1867。
https://stackoverflow.com/questions/5073124
复制相似问题