图像正在上传,但在android中的数据库记录插入不起作用?

时间:2013-10-24 08:33:41

标签: android database image-uploading

我正在尝试插入记录ID,标题和描述,imageupload图像正在上传,但数据库条目无法正常工作

我的代码在这里

 public int uploadFile(String sourceFileUri ,String uid ,String utitle,String udescription) 
    {      

        String fileName = sourceFileUri;
        HttpURLConnection conn = null;
        DataOutputStream dos = null; 
        String lineEnd = "\r\n";
        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 :"+filepath);

             runOnUiThread(new Runnable() 
             {
                 public void run()
                 {


                 }
             });

             return 0;

        }
        else
        {
             try {


                   // open a URL connection to the Servlet
                 FileInputStream fileInputStream = new FileInputStream(sourceFile);
                 URL url = new URL(upLoadServerUri);

                 String urlParameters ="id=" + URLEncoder.encode(uid, "UTF-8") +
                "&title=" + URLEncoder.encode(utitle, "UTF-8")+
                "&description=" + URLEncoder.encode(udescription, "UTF-8");


                 // 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("Content-Language", "en-US"); 
                 conn.setRequestProperty("uploaded_file", fileName);
                 conn.setRequestProperty("id",uid);
                 conn.setRequestProperty("title",utitle);
                 conn.setRequestProperty("description",udescription);

                 dos = new DataOutputStream(conn.getOutputStream());
                 dos.writeBytes(urlParameters);
                 dos.writeBytes(twoHyphens + boundary + lineEnd);
                 dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_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.e("uploadFile", "HTTP Response is : "+ serverResponseMessage + ": " + serverResponseCode);

                 Log.i("uploadFile", "HTTP Response is : "+ serverResponseMessage + ": " + serverResponseMessage);

                 if(serverResponseCode == 200){

                     runOnUiThread(new Runnable() 
                     {
                          public void run() {


                      }
                    });               
                 }   

                 //close the streams //
                 fileInputStream.close();
                 dos.flush();
                 dos.close();

            } catch (MalformedURLException ex) {

                dialog.dismiss(); 
                ex.printStackTrace();

                runOnUiThread(new Runnable() {
                    public void run() 
                    {

                    }
                });

                Log.e("Upload file to server", "error: " + ex.getMessage(), ex); 
            } catch (Exception e) {

                dialog.dismiss(); 
                e.printStackTrace();

                runOnUiThread(new Runnable() {
                    public void run() {

                    }
                });
                Log.e("Upload file to server Exception", "Exception : "
                                                 + e.getMessage(), e); 
            }
            dialog.dismiss();      
            return serverResponseCode;

         }
       }
  

服务器端

$target_path1 = "document/";
        $target_path1 = $target_path1 . basename( $_FILES['uploaded_file']['name']);


        $date=date('Y-m-d');
        $insert_data=array(
            'id_registration'=>$this->input->post('id'),
            'title'=>$this->input->post('title'),
            'description'=>$this->input->post('description'),
            'date'=>$date,
            'upload'=>$target_path1
            );
            $this->db->insert('post_information',$insert_data);

        if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $target_path1)) 
        {

            return true;
        }
    else
    {
        return false;
    }

0 个答案:

没有答案