Tag: upload

Java – 将OutputStream上传为HTTP文件上载

我有一个写入OutputStream的遗留应用程序,我希望将此流的内容作为文件上载到Servlet。 我已经使用JMeter测试了使用commons-fileupload的Servlet,它运行得很好。 我会使用Apache HttpClient,但它需要一个File而不仅仅是一个输出流。 我不能在本地写一个文件; 如果有一些内存中的File实现可能可行吗? 我尝试过使用HttpURLConnection (下面),但服务器响应“MalformedStreamException:Stream意外结束”。 URL url = new URL(“http”, “localhost”, 8080, “/upload”); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); String boundary = “—————————7d226f700d0”; connection.setRequestProperty(“Content-Disposition”, “form-data; name=\”file\””); connection.setRequestProperty(“Content-Type”, “multipart/form-data; boundary=”+boundary); connection.setRequestProperty(“Accept”, “application/json”); connection.setRequestMethod(“POST”); connection.setChunkedStreamingMode(0); connection.connect(); OutputStream out = connection.getOutputStream(); byte[] boundaryBytes =(“–” + boundary + “\r\n”).getBytes(); out.write(boundaryBytes); //App writes to outputstream here out.write(“\r\n”.getBytes()); […]

如何监控文件上传进度?

我需要将文件上传到服务器并监视它的进度。 我需要通知每次发送多少字节。 例如,在下载的情况下,我有: HttpURLConnection connection = (HttpURLConnection) m_url.openConnection(); connection.connect(); InputStream stream = connection.getInputStream(); while ((currentBytes = stream.read(byteBuffer)) > 0) { totalBytes+=currentBytes; //calculate something… } 现在我需要为上传做同样的事情。 但如果使用 OutputStreamWriter stream = new OutputStreamWriter(connection.getOutputStream()); stream.write(str); stream.flush(); 我得不到任何进程通知,关于发送了多少字节(看起来像自动操作)。 有什么建议么? 谢谢

泽西客户端上传进度

我有一个jersey客户端需要上传一个足够大的文件来要求进度条。 问题是,对于需要几分钟的上传,我看到一旦应用程序启动,转移的字节就会变为100%。 然后打印“完成”字符串需要几分钟。 就好像字节被发送到一个缓冲区,我正在读取transfert到缓冲区的速度而不是实际的上传速度 。 这使得进度条无用。 这是非常简单的代码: ClientConfig config = new DefaultClientConfig(); Client client = Client.create(config); WebResource resource = client.resource(“www.myrestserver.com/uploads”); WebResource.Builder builder = resource.type(MediaType.MULTIPART_FORM_DATA_TYPE); FormDataMultiPart multiPart = new FormDataMultiPart(); FileDataBodyPart fdbp = new FileDataBodyPart(“data.zip”, new File(“data.zip”)); BodyPart bp = multiPart.bodyPart(fdbp); String response = builder.post(String.class, multiPart); 为了获得进度状态,我在调用builder.post之前添加了一个ContainerListenerfilter。 final ContainerListener containerListener = new ContainerListener() { @Override public […]

使用Dropbox Java API将文件上载到Dropbox

我想使用Java API for DropBox上传文件。 以下代码为我提供了oauth_token和oauth_secret。 但是当我尝试上传文件时,我得到一个例外。 Java Class package com.dropbox.client; import com.dropbox.client.DropboxAPI.Config; import java.io.File; import java.net.URL; import java.util.HashMap; import java.util.Map; /** * * @author Charan */ public class DBmain { public DBmain() { System.setProperty(“java.net.useSystemProxies”, “true”); Map configuration= new HashMap(); configuration.put(“consumer_key”, “XXXXXXXXXXXXXXXX”); configuration.put(“consumer_secret”, “XXXXXXXXXXXXXXXX”); configuration.put(“request_token_url”, “http://api.dropbox.com/0/oauth/request_token”); configuration.put(“access_token_url”, “http://api.dropbox.com/0/oauth/access_token”); configuration.put(“authorization_url”, “http://api.dropbox.com/0/oauth/authorize”); configuration.put(“port”,80); //configuration.put(“trusted_access_token_url”,”http://api.getdropbox.com/0/token”); configuration.put(“server”,”api.getdropbox.com”); configuration.put(“content_server”,”api-content.dropbox.com”); String username=”myMailAddress@domain.com”; […]

使用Java将文件上载和POST文件到PHP页面

我需要一种方法来上传文件并将其发布到php页面… 我的php页面是: <?php $maxsize = 10485760; $array_estensioni_ammesse=array('.tmp'); $uploaddir = 'uploads/'; if (is_uploaded_file($_FILES['file']['tmp_name'])) { if($_FILES['file']['size'] 我在我的桌面应用程序中使用这个java代码: HttpURLConnection httpUrlConnection = (HttpURLConnection)new URL(“http://www.mypage.org/upload.php”).openConnection(); httpUrlConnection.setDoOutput(true); httpUrlConnection.setRequestMethod(“POST”); OutputStream os = httpUrlConnection.getOutputStream(); Thread.sleep(1000); BufferedInputStream fis = new BufferedInputStream(new FileInputStream(“tmpfile.tmp”)); for (int i = 0; i < totalByte; i++) { os.write(fis.read()); byteTrasferred = i + 1; } os.close(); BufferedReader in = new […]