2013-02-09 119 views
0

在我的Flex應用程序我做圖片上傳使用BlazeDS的...使用Blazeds和Flex將文件上傳到文件夾?

private var fileReference:FileReference; 
     protected function imageUpload(event:MouseEvent):void 
     { 
      // create a fileFilter - class declaration 
      var imageTypes:FileFilter; 
      // set the file filter type - jpg/png/gif - init method    
      imageTypes = new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png"); 

      fileReference = new FileReference(); 

      fileReference.browse([imageTypes]); 

      fileReference.addEventListener(Event.SELECT, browseImage);    
      fileReference.addEventListener(Event.COMPLETE, uploadImage);     
     } 

     private function browseImage(event:Event):void { 
      fileReference.load(); 
     } 
     private function uploadImage(event:Event):void { 
      profileImage.source = fileReference.data; 

      var name:String = fileReference.name; 
      var directory:String = "/EClassV1/flex_src/Images"; 
      var content:ByteArray = new ByteArray(); 
      fileReference.data.readBytes(content, 0, fileReference.data.length); 
      var fileAsyn:AsyncToken = userService.uploadImage(name,directory,content); 
      fileAsyn.addResponder(new mx.rpc.Responder(handler_success, handler_failure)); 
     } 

而且在我的Java代碼...

@RemotingInclude 
public void uploadImage(String name, String directory, byte[] content) { 
    File file = new File(directory); 
    if (!file.exists()) { 
     file.mkdir(); 
    } 
    name = directory + "/" + name; 
    File fileToUpload = new File(name); 
    try { 
     FileOutputStream fos = new FileOutputStream(fileToUpload); 
     fos.write(content); 
     System.out.println("file write successfully"); 
     fos.close(); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

} 

但它給... ..錯誤

java.io.FileNotFoundException: \EClassV1\flex_src\Images\image001.png (The system cannot find the path specified) 
at java.io.FileOutputStream.open(Native Method) 
at java.io.FileOutputStream.<init>(FileOutputStream.java:194) 

其實我想瘡文件夾入和存儲數據庫.. 幫助我..

回答

0

如果文件不存在,您需要創建該文件。該方法createNewFile()會爲你做到這一點:

File fileToUpload = new File(name); 
fileToUpload.createNewFile(); 

try { 
    FileOutputStream oFile = new FileOutputStream(fileToUpload, false); 
    ... 
+0

錯誤:java.io.IOException異常:系統找不到指定的路徑 \t在java.io.WinNTFileSystem.createFileExclusively(本機方法) \t在java.io .File.createNewFile(File.java:883) – 2013-02-09 11:03:42

+0

但我給根目錄/子目錄/子目錄/ 這是錯誤的方式或不?其他明智的如何給flex目錄中的變量。 – 2013-02-09 11:05:11

+1

@NarasimhamK所以你正在WinNT機器上創建一個UNIX風格路徑'/ a/b/c'的文件?你嘗試過一個WinNT風格的路徑嗎? – harpun 2013-02-09 11:05:37