0

是否有可能将文件(例如:图像)上传到站点并计算传输率?

我有一些代码可以从指定的 url 下载图像并使用java.net.Url类计算传输率,例如:

long startTime = System.currentTimeMillis(); //start time

    System.out.println("Connecting  site...\n");
    System.out.println("Downloading......");

    URL url = new URL("http://....");
    url.openConnection();
    InputStream reader = url.openStream();

    FileOutputStream writer = new FileOutputStream("D:/imagine.jpg");
    byte[] buffer = new byte[153600];
    int totalBytesRead = 0;
    int bytesRead = 0; 

    while ((bytesRead = reader.read(buffer)) > 0)
    {  
       writer.write(buffer, 0, bytesRead);
       buffer = new byte[153600];
       totalBytesRead += bytesRead;
    }

    long endTime = System.currentTimeMillis();//end of download

    long elapsedTime=(endTime-startTime)/1000;//from miliseconds in seconds 

    System.out.println("ElapsedTime is " +elapsedTime +" s");

    int memory=new Integer(totalBytesRead);

    double memoryFinal=memory * 0.0009765625; //file in Kb

    System.out.println("File size: " +memoryFinal +"Kb");

    System.out.println("Speed :" + memoryFinal/elapsedTime + "Kbps");
    writer.close();
    reader.close();

我需要一些简单而有用的东西。谢谢你。

4

2 回答 2

0

是的,你可以——但这并不简单。

将文件发布到服务器不是在纯 java URLConnection 中实现的,但您必须实现协议。

或者,您可以使用 org.apache.commons.httpclient

http://www.theserverside.com/news/1365153/HttpClient-and-FileUpload

于 2012-11-05T11:53:31.673 回答
0

我推荐库Apache FileUpload

您也可以实现一个进度条。看到这个

问候

于 2012-11-05T12:06:24.890 回答