2012-05-23 18 views
7

Uygulamamdaki görüntüleri ve txt dosyalarını java kullanarak uzak bir sunucuya (Sadece http: ftp) yüklemem gerekiyor. Benim uygulamam jsf çerçevesinde. Aradım ama uygun şeyler bulunamadı. Herkes bana rehberlik edebilir mi? Aslında dosyaları özel klasöre uzak sunucuya yüklemeliyim. Dosyaları yüklemek için paylaşılan bir yol olan iki uygulama var, bu dosyalara erişebilmek için, paylaşılan dosyaları (görüntüler ve metinler gibi) üçüncü sunucuya yüklemeyi tercih ediyorum. İlk uygulama dosyaları bu uzak sunucuya yüklemeli ve ikinci uygulama bunları okumalıdır. Bu nedenle, bu çözümün zor kısmı, http kullanarak dosyaları bu üçüncü sunucuya (aslında uzak sunucuya) yüklemektir.Java kullanarak http uzak sunucuya dosya nasıl yüklenir?

+0

Herkes almak ** dosya ** yanlış göndermek FileUpload. * Diğer taraftaki * çok parçalı/form-veri isteğinin * ayrıştırılması değil, * çok taraflı/form-veri talebi oluşturmanıza ve göndermenize değil. – BalusC

+1

MAYBE sorusu daha açık hale getirilmelidir. Bu fuzzy bir soru ile doğru cevaplar beklemeyin! –

+0

Dosyaları yüklemek için paylaşılan bir yol olan iki uygulama var, bu dosyalara erişebilmek için, paylaşılan dosyaları (görüntüler ve metinler gibi) üçüncü sunucuya yüklemeyi tercih ederim. İlk uygulama dosyaları bu uzak sunucuya yüklemeli ve ikinci uygulama bunları okumalıdır. Bu yüzden bu çözümün zor kısmı, http kullanarak dosyaları bu üçüncü sunucuya (aslında uzak sunucuya) yüklemektir. – zorro6064

cevap

1

httpclient'i kullanabilirsiniz.

Dosyaları POST kullanarak bir yöntem olarak gönderin.

2

Kullanım:

 byte[] data = bos.toByteArray();//convert ur file into byte[] 
     HttpClient httpClient = new DefaultHttpClient();//Client 
     HttpPost postRequest = new HttpPost(YOUR_SERVER_URL);//Post Request to specified URL 
     ByteArrayBody bab = new ByteArrayBody(data, "a.txt"); 
     MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);// Multipart data 
     reqEntity.addPart("uploadingFile", bab); //adding data to request entity 
     postRequest.setEntity(reqEntity);//adding request entity to post request 
     HttpResponse response = httpClient.execute(postRequest); 
+0

Uzak sunucu adresimi nereye eklemeliyim? Kodunuzda "a.txt" nedir? Benim için daha fazlasını açıklayabilir misin? – zorro6064

+0

urURUR ur_ url içinde urUR ur_ url ... a.txt dosyası 2 sunucusuna yollamadı. –

+0

Kodunuzu kullandım, ancak taşındı ve istisna alamıyor. Bana rehberlik edebilir misin? Yukarıdaki kodunuzda hiçbir şey değiştirmedim. Teşekkürler – zorro6064

6

belirli bir klasöre dosya yüklemek için, ana API olduğunu desteklemelidir.

Sunucu tarafı yüklenen dosyaları almak için, bir dosya yükleme isteği göndermek için http://commons.apache.org/fileupload/

İstemci tarafı kullananlar önce şartının gibi https://hc.apache.org/httpcomponents-client-ga/index.html

+0

Uzak sunucudaki belirli klasör. benim uygulamam sunucumda çalışıyor, dosya sunucusu benim uygulamamın çalıştığı yer değil. – zorro6064

+0

Dediğim gibi, uzak sunucu/dosya ana bilgisayarı, HTTP – gigadot

-3

yapmak: Yani HTTP çoklu bölüm dosya yükleme, uygun bir solution.You buradan bu konuda daha fazla bilgi edinebilirsiniz gibi görünüyor 10
@Autowired 
ServletContext c; 

veya nesne müşterekleri anlaşılacağı

byte[] bytes = file.getBytes(); 

String UPLOAD_FOLDEdR=c.getRealPath("/images"); 
Path path = Paths.get(UPLOAD_FOLDEdR +"/"+ file.getOriginalFilename()); 
Files.write(path, bytes); 
System.out.println(path); 
String Pic_Name =file.getOriginalFilename(); 
+1

aracılığıyla yüklediğinizde uzak hedefi belirtmek için API sağlamalıdır. Lütfen cevabınızı düzenler misiniz, bu nedenle anlamlı olur? Şu anda, okunması zor bir koddur ve bu sorunun söz konusu sorunu nasıl çözdüğü açık değildir. Lütfen cevabınızı daha iyi açıklayın. – melwil

İlgili konular