在gae / j中的FileService api中设置文件名

时间:2012-08-11 10:16:30

标签: java google-app-engine blobstore

我写了一个servlet,它正在成功上传blob但是没有名称的上传如何在servlet中设置上传文件的名称

这是servlet代码段

public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {



         FileService fileService = FileServiceFactory.getFileService();

          // Create a new Blob file with mime-type "text/plain"

          String url="http://www.cbwe.gov.in/htmleditor1/pdf/sample.pdf";
          URL url1=new URL(url);
          HttpURLConnection conn=(HttpURLConnection) url1.openConnection();
          String content_type=conn.getContentType();
          InputStream stream =conn.getInputStream();
          AppEngineFile file = fileService.createNewBlobFile("application/pdf");

          file=new AppEngineFile(file.getFullPath());
         Boolean lock = true;
          FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock);

          // This time we write to the channel directly
          String s1="";
          String s2="";

          byte[] bytes = IOUtils.toByteArray(stream);


          writeChannel.write(ByteBuffer.wrap(bytes));
          writeChannel.closeFinally();

2 个答案:

答案 0 :(得分:0)

将filename作为第二个参数传递给fileService.createNewBlobFile("application/pdf", "filename.pdf")

答案 1 :(得分:0)

您可以从您的网址

获取文件名

String fileNameWithoutExtn = url.substring(0,url.lastIndexOf('。'));

然后将fileName作为参数传递

FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock,fileNameWithoutExtn );