日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android两个java文件内容_java – 在1个请求中将多个文件从Android上传...

發(fā)布時間:2025/3/12 Android 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android两个java文件内容_java – 在1个请求中将多个文件从Android上传... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我知道我可以使用multipart / form POST請求一次將1個文件上傳到AppEngine. AppEngine也支持uploading multiple files,但你必須做一些運行的JSP東西才能工作.

我有一個應用程序,要求我上傳一些表單數據,2個圖像和3個文本字段.這可以通過AppEngine完成嗎?我一直在努力尋找有關這方面的信息,但這很難解決我需要的靈活性.我將把數據存儲在blob存儲/數據存儲中.

我需要一個Java解決方案.

這是我的POST方法的簽名:

import javax.ws.rs.Consumes;

import javax.ws.rs.POST;

@POST

@Consumes(MediaType.MULTIPART_FORM_DATA)

public void post(

@Context HttpServletRequest request,

@Context HttpServletResponse response)

throws FileUploadException, IOException {}

如果確實需要,可以復制和粘貼Java Servlet.以上是問題和相關的servlet片段.

import java.io.BufferedReader;

import java.io.IOException;

import java.nio.ByteBuffer;

import java.nio.channels.Channels;

import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.ws.rs.Consumes;

import javax.ws.rs.POST;

import javax.ws.rs.Path;

import javax.ws.rs.core.Context;

import javax.ws.rs.core.MediaType;

import org.apache.commons.fileupload.FileItemHeaders;

import org.apache.commons.fileupload.FileItemIterator;

import org.apache.commons.fileupload.FileItemStream;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.google.appengine.api.blobstore.BlobstoreService;

import com.google.appengine.api.blobstore.BlobstoreServiceFactory;

import com.google.appengine.api.files.AppEngineFile;

import com.google.appengine.api.files.FileReadChannel;

import com.google.appengine.api.files.FileService;

import com.google.appengine.api.files.FileServiceFactory;

import com.google.appengine.api.files.FileWriteChannel;

@Path("/upload")

public class FileUploadServlet {

private BlobstoreService blobstoreService = BlobstoreServiceFactory

.getBlobstoreService();

@POST

@Consumes(MediaType.MULTIPART_FORM_DATA)

public void post(@Context HttpServletRequest request,

@Context HttpServletResponse response) throws FileUploadException,

IOException {

final ServletFileUpload upload = new ServletFileUpload();

final FileItemIterator fileIter = upload.getItemIterator(request);

while (fileIter.hasNext()) {

final FileItemStream item = fileIter.next();

String name = item.getName();

String fieldName = item.getFieldName();

String contentType = item.getContentType();

Log.d("Name = " + name);

Log.d("Field-Name = " + fieldName);

Log.d("Content-Type = " + contentType);

FileItemHeaders headers = item.getHeaders();

if(headers != null) {

Iterator it = (Iterator)headers.getHeaderNames();

while(it.hasNext()) {

String h = it.next();

Log.d(h + " = " + headers.getHeader(h));

}

}

if (item.isFormField()) {

// Nothing

} else {

RawImageData data = new RawImageData();

data.load(item.openStream());

// RawImageData reads the stream and stores it into a large byte[] called data.imageData

ByteBuffer bb = ByteBuffer.wrap(data.imageData);

FileService fs = FileServiceFactory.getFileService();

AppEngineFile file = fs.createNewBlobFile(contentType);

FileWriteChannel write = fs.openWriteChannel(file, true);

write.write(bb);

write.closeFinally();

String path = file.getFullPath();

Log.d(path);

// Later, read from the file using the file API

boolean lock = false; // Let other people read at the same time

FileReadChannel readChannel = fs.openReadChannel(file,

false);

// CRASHES WITH java.nio.charset.IllegalCharsetNameException: image/jpeg

// contentType = "image/jpeg"

// Again, different standard Java ways of reading from the

// channel.

BufferedReader reader = new BufferedReader(Channels.newReader(readChannel, contentType));

readChannel.close();

}

}

response.setContentType("text/html");

response.getOutputStream().write("success".getBytes());

}

}

完全例外:

WARNING: /api/upload

java.nio.charset.IllegalCharsetNameException: image/jpeg

at java.nio.charset.Charset.checkName(Charset.java:284)

at java.nio.charset.Charset.lookup2(Charset.java:458)

at java.nio.charset.Charset.lookup(Charset.java:437)

at java.nio.charset.Charset.forName(Charset.java:502)

at java.nio.channels.Channels.newReader(Channels.java:381)

at com.futonredemption.starstarstar.FileUploadServlet.post(FileUploadServlet.java:96)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

blah blah blah

總結

以上是生活随笔為你收集整理的android两个java文件内容_java – 在1个请求中将多个文件从Android上传...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。