Ich möchte die Medien (Bild oder Dokument, entweder im PDF-oder DOCX-Format) Datei aus dem internen Speicher und auf den Server hochladen und zeigen auch die Miniaturansicht der Mediendatei.Wie wähle ich Dokumente und Bilddateien aus dem internen Speicher und lade sie auf den Server hoch?
Q
Wie wähle ich Dokumente und Bilddateien aus dem internen Speicher und lade sie auf den Server hoch?
-2
A
Antwort
0
Dieser Code würde helfen, die Medien (Bild oder Dokument, entweder im PDF- oder im docx-Format) aus dem internen Speicher hochzuladen und auf den Server hochzuladen.
für die Datei aus dem internen wählen:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK){
if(requestCode == PICK_FILE_REQUEST){
if(data == null){
//no data present
return;
}
Uri selectedFileUri = data.getData();
selectedFilePath = FilePath.getPath(this,selectedFileUri);
Log.i(TAG,"Selected File Path:" + selectedFilePath);
if(selectedFilePath != null && !selectedFilePath.equals("")){
tvFileName.setText(selectedFilePath);
}else{
Toast.makeText(this,"Cannot upload file to server",Toast.LENGTH_SHORT).show();
}
}
}
}
Laden
public int uploadFile(final String selectedFilePath){
int serverResponseCode = 0;
HttpURLConnection connection;
DataOutputStream dataOutputStream;
String lineEnd = "\r\n";
String twoHyphens = "--";
String boundary = "*****";
int bytesRead,bytesAvailable,bufferSize;
byte[] buffer;
int maxBufferSize = 1 * 1024 * 1024;
File selectedFile = new File(selectedFilePath);
String[] parts = selectedFilePath.split("/");
final String fileName = parts[parts.length-1];
if (!selectedFile.isFile()){
dialog.dismiss();
runOnUiThread(new Runnable() {
@Override
public void run() {
tvFileName.setText("Source File Doesn't Exist: " + selectedFilePath);
}
});
return 0;
}else{
try{
FileInputStream fileInputStream = new FileInputStream(selectedFile);
URL url = new URL(SERVER_URL);
connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);//Allow Inputs
connection.setDoOutput(true);//Allow Outputs
connection.setUseCaches(false);//Don't use a cached Copy
connection.setRequestMethod("POST");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("ENCTYPE", "multipart/form-data");
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
connection.setRequestProperty("uploaded_file",selectedFilePath);
//creating new dataoutputstream
dataOutputStream = new DataOutputStream(connection.getOutputStream());
//writing bytes to data outputstream
dataOutputStream.writeBytes(twoHyphens + boundary + lineEnd);
dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
+ selectedFilePath + "\"" + lineEnd);
dataOutputStream.writeBytes(lineEnd);
//returns no. of bytes present in fileInputStream
bytesAvailable = fileInputStream.available();
//selecting the buffer size as minimum of available bytes or 1 MB
bufferSize = Math.min(bytesAvailable,maxBufferSize);
//setting the buffer as byte array of size of bufferSize
buffer = new byte[bufferSize];
//reads bytes from FileInputStream(from 0th index of buffer to buffersize)
bytesRead = fileInputStream.read(buffer,0,bufferSize);
//loop repeats till bytesRead = -1, i.e., no bytes are left to read
while (bytesRead > 0){
//write the bytes read from inputstream
dataOutputStream.write(buffer,0,bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable,maxBufferSize);
bytesRead = fileInputStream.read(buffer,0,bufferSize);
}
dataOutputStream.writeBytes(lineEnd);
dataOutputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
serverResponseCode = connection.getResponseCode();
String serverResponseMessage = connection.getResponseMessage();
Log.i(TAG, "Server Response is: " + serverResponseMessage + ": " + serverResponseCode);
//response code of 200 indicates the server status OK
if(serverResponseCode == 200){
runOnUiThread(new Runnable() {
@Override
public void run() {
tvFileName.setText("File Upload completed.\n\n You can see the uploaded file here: \n\n" + "http://coderefer.com/extras/uploads/"+ fileName);
}
});
}
//closing the input and output streams
fileInputStream.close();
dataOutputStream.flush();
dataOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(NewClassPdf.this,"File Not Found",Toast.LENGTH_SHORT).show();
}
});
} catch (MalformedURLException e) {
e.printStackTrace();
Toast.makeText(NewClassPdf.this, "URL error!", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(NewClassPdf.this, "Cannot Read/Write File!", Toast.LENGTH_SHORT).show();
}
dialog.dismiss();
return serverResponseCode;
}
}
die Datei zum Server:
Intent intent = new Intent();
//sets the select file to all types of files
intent.setType("*/*");
//allows to select data and return it
intent.setAction(Intent.ACTION_GET_CONTENT);
//starts new activity to select file and return data
startActivityForResult(Intent.createChooser(intent,"Choose File to Upload.."),PICK_FILE_REQUEST);
die Datei ab,
Dieser Code hilft mir, die Datei auf den Server (alle Dateien) hochzuladen.
Verwandte Themen
- 1. Wie lade ich Bilddateien im Anfragetext mit Alamofire hoch?
- 2. Wie wähle ich eine Datei in Python aus und lade sie hoch
- 3. Wie lade ich Bilddateien in eine bestehende Datenbank hoch?
- 4. Wie lade ich die Bilder auf den Server hoch?
- 5. Wie lade ich Songart (AlbumArt) aus dem internen und externen Speicher des Geräts?
- 6. Wie lade ich herunterladbare Dokumente auf Wordpress hoch?
- 7. Anzeige der Bilddateien aus dem Speicher
- 8. Wie lade ich Dateien mit NodeJs und Kafka hoch?
- 9. Wie lade ich Dateien auf einen entfernten Server hoch und ändere den Pfad in nodejs?
- 10. Wie lade ich Bilddateien von Android auf .Net C# (IIS) hoch?
- 11. Wie lade ich eine Datei auf einen Server hoch?
- 12. Wie lade ich eine Datei mit Phonegap und JqueryMobile hoch?
- 13. Wie lade ich ein Bild zum Firebase-Speicher hoch?
- 14. Wie komprimiere ich mehrere Bilder und lade den FTP-Server von der iPhone App hoch?
- 15. Wie lade ich den gesamten Ordner auf github hoch?
- 16. Wie lade ich ein Bild aus dem Eingabefeld in den Firebase-Cloudspeicher hoch?
- 17. Wie lade ich Bilder mit bottle.py hoch?
- 18. Wie lese ich eine Datei aus dem internen Speicher?
- 19. Wie lade ich mehrere Bilder mit Swift auf den Server hoch?
- 20. Wie lade ich Bilder auf den Webserver hoch?
- 21. Wie lade ich mehrere Bilder zum Firebase-Speicher hoch?
- 22. Wie lade ich von clientseitigem JavaScript auf Google Cloud Storage hoch, mit Node auf dem Server?
- 23. Wie lade ich Pakete ohne setup.py auf den PyPI-Server hoch?
- 24. Wie lade ich 3gp-Dateien hoch
- 25. Senden Sie E-Mail mit Anhang aus dem internen Speicher
- 26. Wie konfiguriere ich meinen Ubuntu nodeJS Server und lade meine angularJS WebSites hoch
- 27. Wie lade ich eine Datei aus dem Internet in den azurblauen Speicher als Blob mit Java-Code hoch?
- 28. Swift 3 und Backendless - wie lade ich ein Bild hoch?
- 29. Wie lade ich ein heruntergeladenes Blickbild hoch?
- 30. Wie lade ich Videos auf Youtube mit dem Zugriffstoken und API in Android hoch?
Warum verwenden Sie Google nicht für Ihre Frage? –
'pdf oder docx formate) Datei von der Galerie' ??? Sie sind in "der Galerie"? – greenapps
bedeutet, wählen Sie aus dem internen Speicher –