android开发:怎样实现上传文件到Tomcat服务器上,求可执行的代码,越简洁越好
服务器端写个servlet,然后在doPost()方法里处理客户端上传的文件,大概代码:
DiskFileItemFactory factory = new DiskFileItemFactory();
factorysetSizeThreshold(1024 1024); // 设置最多只允许在内存中存储的数据, 单位:字节
factorysetRepository(cachepath); // 设置一旦文件大小超过设定值时数据存放的目录
ServletFileUpload srvFileUpload = new ServletFileUpload(factory);
srvFileUploadsetSizeMax(1024 1024 1024); // 设置允许用户上传文件大小, 单位:字节
// 开始读取上传信息
List fileItems = null;
try {
fileItems = srvFileUploadparseRequest(request);
} catch (Exception e) {
Systemoutprintln("获取上传信息。。。。。。失败");
}
// 依次处理每个上传的文件
Iterator iter = fileItemsiterator();
while (iterhasNext()) {
FileItem item = (FileItem) iternext(); // 忽略其他不是文件域的所有表单信息
if (!itemisFormField()) {
// 取出文件域的所有表单信息
} else {
// 取出不是文件域的所有表单信息
}
}
SystemNetWebClient webclient = new SystemNetWebClient();
webclientUploadFile(URL, FileName);
URL 是服务器的URL,就是接受文件的那个页面,FileName是本地文件。所以服务器还必须有个能接受文件上传的页面。JSP与 ASPNET都可以通用。
c#
string dirPath = ServerMapPath("~/Temp/");
if (!DirectoryExists(dirPath))
{
DirectoryCreateDirectory(dirPath);
}
string filePath = dirPath + DateTimeNowToString("yyyyMMddHHmmssffff") + "jpg";
HttpPostedFileBase file = RequestFiles[0];
fileSaveAs(filePath);
//文件写入流
private void ReadFile()
{
Byte[] MesageFile;
string path =@"c:\123XML";
FileStream stream = new FileStream(path, FileModeOpen, FileAccessRead);
int size = ConvertToInt32(streamLength);
MesageFile = new Byte[size];
streamRead(MesageFile, 0, size);
streamClose()
string fileName =pathSubstring(pathLastIndexOf("\\") + 1, pathLength pathLastIndexOf("\\") - 1);
WriteFile(MesageFile, fileName);
}
//写入文件
private void WriteFile(Byte[] fileByte,string fileName)
{
string path = AppDomainCurrentDomainBaseDirectory + "\\UpLoad\\" + DateTimeNowToString("yyyy-MM-dd")+"\\";
if (!DirectoryExists(path))
DirectoryCreateDirectory(path);
string savepath = path + fileName;
FileStream fos = new FileStream(savepath, FileModeOpenOrCreate, FileAccessReadWrite);
fosWrite(MesageFile, 0, MesageFileLength);
fosClose();
}
上传的文件格式不限。
0条评论