如何在任何可用的計算機上創建本地文件作爲具有URL的可下載文件。該URL將被客戶端Java應用程序訪問以下載文件。使用URL創建可下載的文件
回答
可以使用Jetty服務器。將它嵌入到Java SE應用程序中非常簡單。您可以在這裏找到更多的信息:
http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty
我認爲部分配置文件服務器會爲你是特別有趣:
http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty#Configuring_a_File_Server
這裏,你可以找到有一個例子:
public class FileServer
{
public static void main(String[] args) throws Exception
{
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8080);
server.addConnector(connector);
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{ "index.html" });
resource_handler.setResourceBase(".");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() });
server.setHandler(handlers);
server.start();
server.join();
}
}
如果您配置了resourceBase
,路徑如下:resource_handler.setResourceBase("/path/to/your/folder")
,那麼這個文件夾中的所有文件都可以通過HTTP訪問。
創建一個Java服務器,一定要揭露它,如果你是一個路由器/代理/防火牆後面,如果你從外部互聯網訪問它,如果沒有,如果你在同一個子網是那麼它的罰款忽略這個考慮。
在Java服務器,讓它偵聽到特定端口和處理TCP從定製的Java客戶端調用該規定同意端口上進行數據交換。然後讓Java服務器使用System.IO調用或類似服務將文件作爲字節流發送到客戶端。
Java服務器優選可以說LAMP或Jetty或精縮基於Java的服務器實際上,這樣你就不必從頭開始。
希望這會有所幫助。
您可以設置一個網絡服務器。
一個Java Web服務器:
- Oracle Networking (Code),這是該項目頁面:project page
當然,如果你是一個路由器之後,您將需要80端口轉發到您的計算機。
對不起,什麼?一個URL可以識別幾十個方案/協議中的任何一個,即:ftp \://ftp.uiuc.edu是一個有效的URL,但不使用http。 – Kylar 2011-02-06 02:20:03
由於Java 1.6,還有JDK包含一個內置的HTTP服務器。
這段代碼是用來設置一個簡單的HTTP服務器,以獲得特定的PDF(與請求http://localhost:8000/get)
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.Headers;
public class SimpleHttpServer {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/info", new InfoHandler());
server.createContext("/get", new GetHandler());
server.setExecutor(null); // creates a default executor
server.start();
}
static class InfoHandler implements HttpHandler {
public void handle(HttpExchange t) throws IOException {
String response = "Use /get to download a PDF";
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
static class GetHandler implements HttpHandler {
public void handle(HttpExchange t) throws IOException {
// add the required response header for a PDF file
Headers h = t.getResponseHeaders();
h.add("Content-Type", "application/pdf");
// a PDF (you provide your own!)
File file = new File ("c:/temp/doc.pdf");
byte [] bytearray = new byte [(int)file.length()];
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(bytearray, 0, bytearray.length);
// ok, we are ready to send the response.
t.sendResponseHeaders(200, file.length());
OutputStream os = t.getResponseBody();
os.write(bytearray,0,bytearray.length);
os.close();
}
}
}
裁判:http://www.rgagnon.com/javadetails/java-have-a-simple-http-server.html
- 1. 使用PHP創建和下載文件
- 2. Django-使用pd.read_html&df.to_excel創建可下載的excel文件
- 3. 使用熊貓下載的URL文件
- 4. 如何在內存文件中使用vertx創建可下載的文件api
- 5. 使用JavaScript創建文件並調用下載文件
- 6. PHP創建文件並下載文件
- 7. 從JavaScript創建可下載的附件?
- 8. Google應用腳本:如何創建可下載的html文件?
- 9. 使用Retrofit從URL下載HTML文件
- 10. 使用ashx從URL下載文件
- 11. 使用Ruby從URL下載文件
- 12. 使用perl從url下載zip文件
- 13. 使用Java從HTTPS URL下載文件
- 14. 使用Python從Blob URL下載文件
- 15. 使用Cookie從URL下載文件
- 16. 使用Dropbox url下載文件android
- 17. 使用VBA從url下載zip文件
- 18. 動態創建使用Dart下載的文本文件
- 19. 如何創建可下載的鏈接到文本文件?
- 20. 使用可可下載文件
- 21. 動態創建的WebClient.DownloadFile下載文件
- 22. 使用url動態創建文件夾
- 23. 使用powershell和CMD創建「* .url」文件
- 24. 可以使用什麼SSIS任務從HTTPS URL下載文件?
- 25. 下載使用DownLoadManager.Request從URL下載文件時失敗
- 26. 使用php創建和下載文本文件
- 27. FB使用.htaccess文件和PHP創建網址如下URL
- 28. 使用PHP創建.jpg文件的下載鏈接
- 29. 無法使用monotorrent從新創建的torrent下載文件
- 30. 如何使用python下載創建的PDF文件?
你想要做什麼?你想讓文件可以從其他計算機的Java應用程序訪問嗎? – Teknophilia 2011-01-28 21:58:13
文件將需要在客戶端應用程序之間傳輸。像P2P一樣,但只有1到1個文件傳輸。我將無法在使用此應用程序的所有計算機上設置HTTP服務器! – 2011-01-28 22:19:01