Android 如何获取用户上传的PDF的链接
我正在制作一个问答应用程序,您可以在其中上传链接、视频、图像、PDF等,但我无法获取用户上传的PDF的生成链接。我试着寻找上传PDF解析数据库的方法,但所有这些方法都只展示了如何上传存储在Raw中的PDF。所以我决定将PDF存储为链接,然后使用WebBrowser打开PDF。我将分享我的上传方法,用户上传PDF的代码 上传:Android 如何获取用户上传的PDF的链接,android,pdf,Android,Pdf,我正在制作一个问答应用程序,您可以在其中上传链接、视频、图像、PDF等,但我无法获取用户上传的PDF的生成链接。我试着寻找上传PDF解析数据库的方法,但所有这些方法都只展示了如何上传存储在Raw中的PDF。所以我决定将PDF存储为链接,然后使用WebBrowser打开PDF。我将分享我的上传方法,用户上传PDF的代码 上传: class Upload extends AsyncTask<Void, Void, Void> { private ProgressDialog pd
class Upload extends AsyncTask<Void, Void, Void> {
private ProgressDialog pd;
private Context c;
private Uri path;
public Upload(Context c, Uri path) {
this.c = c;
this.path = path;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pd = ProgressDialog.show(c, "Uploading", "Please Wait");
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
pd.dismiss();
}
@Override
protected Void doInBackground(Void... params) {
String url_path = "http://192.168.43.50/projectpri/upload.php";
HttpURLConnection conn = null;
int maxBufferSize = 1024;
try {
URL url = new URL(url_path);
conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setChunkedStreamingMode(1024);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "multipart/form-data");
OutputStream outputStream = conn.getOutputStream();
InputStream inputStream = c.getContentResolver().openInputStream(path);
int bytesAvailable = Objects.requireNonNull(inputStream).available();
int bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte[] buffer = new byte[bufferSize];
int bytesRead;
while ((bytesRead = inputStream.read(buffer, 0, bufferSize)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.flush();
inputStream.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
Log.i("result", line);
}
reader.close();
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) {
conn.disconnect();
}
}
return null;
}
}
类上载扩展异步任务{
私营部门;
私有上下文c;
私有Uri路径;
公共上载(上下文c、Uri路径){
这个.c=c;
this.path=path;
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pd=ProgressDialog.show(c,“上传”,“请稍候”);
}
@凌驾
受保护的void onPostExecute(void结果){
super.onPostExecute(结果);
pd.解散();
}
@凌驾
受保护的Void doInBackground(Void…参数){
字符串url_路径=”http://192.168.43.50/projectpri/upload.php";
HttpURLConnection conn=null;
int maxBufferSize=1024;
试一试{
URL=新URL(URL\u路径);
conn=(HttpURLConnection)url.openConnection();
连接设置输出(真);
conn.SETUSECHACHES(假);
conn.setDoInput(真);
conn.setChunkedStreamingMode(1024);
conn.setRequestMethod(“POST”);
conn.setRequestProperty(“连接”、“保持活动”);
conn.setRequestProperty(“内容类型”、“多部分/表单数据”);
OutputStream OutputStream=conn.getOutputStream();
InputStream InputStream=c.getContentResolver().openInputStream(路径);
int bytesavable=Objects.requireNonNull(inputStream.available();
int bufferSize=Math.min(字节可用,maxBufferSize);
字节[]缓冲区=新字节[bufferSize];
int字节读取;
while((bytesRead=inputStream.read(buffer,0,bufferSize))!=-1){
写入(缓冲区,0,字节读取);
}
outputStream.flush();
inputStream.close();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(
conn.getInputStream());
弦线;
而((line=reader.readLine())!=null){
Log.i(“结果”,第行);
}
reader.close();
连接断开();
}捕获(例外e){
e、 printStackTrace();
}最后{
如果(conn!=null){
连接断开();
}
}
返回null;
}
}
请告诉我在哪里可以从这个代码中获得PDF的链接。先谢谢你