// Copyright (c) 2015, Christopher "BlayTheNinth" Baker
package net.blay09.mods.eirairc.addon;
import net.blay09.mods.eirairc.api.upload.UploadHoster;
import net.blay09.mods.eirairc.api.upload.UploadedFile;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class DirectUploadHoster implements UploadHoster {
public static final String API = "http://www.directupload.net/api/upload.php";
public static final String BOUNDARY = "---------------------------7d41b838504d8";
@Override
public UploadedFile uploadFile(File file, int uploadBufferSize) {
try {
URL apiURL = new URL(API);
HttpURLConnection con = (HttpURLConnection) apiURL.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY);
con.setRequestProperty("Connection", "Keep-Alive");
con.setRequestProperty("Cache-Control", "no-cache");
DataOutputStream out = new DataOutputStream(con.getOutputStream());
out.writeBytes("--" + BOUNDARY + "\r\n");
out.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"" + file.getName() + "\"\r\n");
out.writeBytes("\r\n");
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[uploadBufferSize];
int len;
while((len = fis.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
fis.close();
out.writeBytes("\r\n");
out.writeBytes("--" + BOUNDARY + "--\r\n");
out.flush();
out.close();
InputStream in = new BufferedInputStream(con.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = reader.readLine()) != null) {
stringBuilder.append(line).append("\n");
}
reader.close();
in.close();
con.disconnect();
return new UploadedFile(stringBuilder.toString(), null, null);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public String getName() {
return "DirectUpload";
}
}