Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- use strict;
- use CGI;
- use CGI::Carp qw ( fatalsToBrowser );
- use File::Basename;
- $CGI::POST_MAX = 1024 * 5000 * 5000;
- my $safe_filename_characters = "a-zA-Z0-9_.-";
- my $upload_dir = "$ENV{DOCUMENT_ROOT}/android/videos";
- my $query = new CGI;
- my $filename = $query->param("upload_file");
- #my $param2 = $query->param("param2");
- #my $param3 = $query->param("param3");
- if (!$filename) {
- print $query->header ( );
- print "ERROR MSG 123";
- exit;
- }
- #prowerka za filename
- my ( $name, $path, $extension ) = fileparse ( $filename, '..*' );
- $filename = $name . $extension;
- $filename =~ tr/ /_/;
- $filename =~ s/[^$safe_filename_characters]//g;
- if ( $filename =~ /^([$safe_filename_characters]+)$/ ) {
- $filename = $1;
- } else {
- die "Filename contains invalid characters";
- }
- my $upload_filehandle = $query->upload("upload_file");
- if (!$upload_filehandle)
- {
- die "Configuration file could not be loaded";
- }
- print $query->header;
- open ( UPLOADFILE, ">$upload_dir/$filename" ) or die "$!";
- binmode UPLOADFILE;
- while ( <$upload_filehandle> )
- {
- print UPLOADFILE;
- }
- close UPLOADFILE;
- package com.androidexample.uploadtoserver;
- import java.io.DataOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.net.HttpURLConnection;
- import java.net.MalformedURLException;
- import java.net.URL;
- import android.app.Activity;
- import android.app.ProgressDialog;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
- import android.widget.Toast;
- public class UploadToServer extends Activity {
- TextView messageText;
- Button uploadButton;
- int serverResponseCode = 0;
- ProgressDialog dialog = null;
- String upLoadServerUri = null;
- /********** File Path *************/
- final String uploadFilePath = "/storage/sdcard0/DCIM/100ANDRO/";
- final String uploadFileName = "DSC_0003.jpg";
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_upload_to_server);
- uploadButton = (Button)findViewById(R.id.uploadButton);
- messageText = (TextView)findViewById(R.id.messageText);
- messageText.setText("Uploading file path :- '/storage/sdcard0/DCIM/100ANDRO/"+uploadFileName+"'");
- /************* Php script path ****************/
- upLoadServerUri = "http://www.suntrainer.com/cgi-bin/temp/upload.pl";
- uploadButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- dialog = ProgressDialog.show(UploadToServer.this, "", "Uploading file...", true);
- new Thread(new Runnable() {
- public void run() {
- runOnUiThread(new Runnable() {
- public void run() {
- messageText.setText("uploading started.....");
- }
- });
- uploadFile(uploadFilePath + "" + uploadFileName);
- }
- }).start();
- }
- });
- }
- public int uploadFile(String sourceFileUri) {
- String fileName = sourceFileUri;
- HttpURLConnection conn = null;
- DataOutputStream dos = null;
- String lineEnd = "rn";
- String twoHyphens = "--";
- String boundary = "*****";
- int bytesRead, bytesAvailable, bufferSize;
- byte[] buffer;
- int maxBufferSize = 1 * 1024 * 1024;
- File sourceFile = new File(sourceFileUri);
- if (!sourceFile.isFile()) {
- dialog.dismiss();
- Log.e("uploadFile", "Source File not exist :"
- +uploadFilePath + "" + uploadFileName);
- runOnUiThread(new Runnable() {
- public void run() {
- messageText.setText("Source File not exist :"
- +uploadFilePath + "" + uploadFileName);
- }
- });
- return 0;
- }
- else
- {
- try {
- // open a URL connection to the Servlet
- FileInputStream fileInputStream = new FileInputStream(sourceFile);
- URL url = new URL(upLoadServerUri);
- // Open a HTTP connection to the URL
- conn = (HttpURLConnection) url.openConnection();
- conn.setDoInput(true); // Allow Inputs
- conn.setDoOutput(true); // Allow Outputs
- conn.setUseCaches(false); // Don't use a Cached Copy
- conn.setRequestMethod("POST");
- conn.setRequestProperty("Connection", "Keep-Alive");
- conn.setRequestProperty("ENCTYPE", "multipart/form-data");
- conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
- conn.setRequestProperty("upload_file", fileName);
- dos = new DataOutputStream(conn.getOutputStream());
- dos.writeBytes(twoHyphens + boundary + lineEnd);
- dos.writeBytes("Content-Disposition: form-data; name="upload_file";filename=""
- + fileName + """ + lineEnd);
- dos.writeBytes(lineEnd);
- // create a buffer of maximum size
- bytesAvailable = fileInputStream.available();
- bufferSize = Math.min(bytesAvailable, maxBufferSize);
- buffer = new byte[bufferSize];
- // read file and write it into form...
- bytesRead = fileInputStream.read(buffer, 0, bufferSize);
- while (bytesRead > 0) {
- dos.write(buffer, 0, bufferSize);
- bytesAvailable = fileInputStream.available();
- bufferSize = Math.min(bytesAvailable, maxBufferSize);
- bytesRead = fileInputStream.read(buffer, 0, bufferSize);
- }
- // send multipart form data necesssary after file data...
- dos.writeBytes(lineEnd);
- dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
- // Responses from the server (code and message)
- serverResponseCode = conn.getResponseCode();
- String serverResponseMessage = conn.getResponseMessage();
- Log.i("uploadFile", "HTTP Response is : "
- + serverResponseMessage + ": " + serverResponseCode);
- if(serverResponseCode == 200){
- runOnUiThread(new Runnable() {
- public void run() {
- String msg = "File Upload Completed. nn";
- messageText.setText(msg);
- Toast.makeText(UploadToServer.this, "File Upload Complete.",
- Toast.LENGTH_SHORT).show();
- }
- });
- }
- //close the streams //
- fileInputStream.close();
- dos.flush();
- dos.close();
- } catch (MalformedURLException ex) {
- dialog.dismiss();
- ex.printStackTrace();
- runOnUiThread(new Runnable() {
- public void run() {
- messageText.setText("MalformedURLException Exception : check script url.");
- Toast.makeText(UploadToServer.this, "MalformedURLException",
- Toast.LENGTH_SHORT).show();
- }
- });
- Log.e("Upload file to server", "error: " + ex.getMessage(), ex);
- } catch (Exception e) {
- dialog.dismiss();
- e.printStackTrace();
- runOnUiThread(new Runnable() {
- public void run() {
- messageText.setText("Got Exception : see logcat ");
- Toast.makeText(UploadToServer.this, "Got Exception : see logcat ",
- Toast.LENGTH_SHORT).show();
- }
- });
- Log.e("Upload file to server Exception", "Exception : "
- + e.getMessage(), e);
- }
- dialog.dismiss();
- return serverResponseCode;
- } // End else block
- }
- }
- // read file and write it into form...
- bufferSize = maxBufferSize;
- buffer = new byte[bufferSize];
- bytesRead = fileInputStream.read(buffer, 0, bufferSize);
- // create a buffer of maximum size
- bytesAvailable = fileInputStream.available();
- HttpClient httpclient = new DefaultHttpClient();
- httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
- HttpPost httppost = new HttpPost(upLoadServerUri);
- File file = new File(uploadFilePath + "" + uploadFileName);
- MultipartEntity mpEntity = new MultipartEntity();
- ContentBody cbFile = new FileBody(file);
- mpEntity.addPart("upload_file", cbFile);
- StringBody contentString = new StringBody("me_again");
- mpEntity.addPart("new_file_name",contentString);
- httppost.setEntity(mpEntity);
- System.out.println("executing request " + httppost.getRequestLine());
- HttpResponse response = httpclient.execute(httppost);
- HttpEntity resEntity = response.getEntity();
- System.out.println(response.getStatusLine());
- if (resEntity != null) {
- System.out.println(EntityUtils.toString(resEntity));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement