2010-11-20 30 views
0

Je sais que cette question a été posée et a répondu, mais j'ai un problème différent. J'ai une application en ce moment qui ne charge pas les images qui sont supérieures à 5mp mais charge les plus petites. Je ne suis pas sûr si son 5MP ou plus de 1 Mo, Im assez sûr de son MP si, j'ai testé. Comment puis-je charger des images de toutes tailles? Mon code est ci-dessous, S'il vous plaît aider, s'il vous plaît code postal pas des liens, de doit à des liens, puis des liens vers le code qui peut aider. Merci!android développement chargement Images de l'URL

Téléchargement de l'image @Override protégé Bitmap doInBackground (Object ... objets) { InputStream est = null; BufferedInputStream bis = null;

    Bitmap bmp = null; 

        try { 
        URL url = new URL(Pictureurl); 
         URLConnection conn = url.openConnection(); 
        conn.connect(); 
        is = conn.getInputStream(); 
         bis = new BufferedInputStream(is); 
         bmp = BitmapFactory.decodeStream(bis); 
         return bmp; 
       } catch (MalformedURLException e) { 
        return null; 
       } catch (IOException e) { 
        return null; 
        } 
    } 
     @Override 
     protected void onPostExecute(Object resizedBitmap) { 
    MainPicture.setImageBitmap((Bitmap) resizedBitmap); 
    connectionProgressDialog.dismiss(); 
     } 

l'image Téléchargement

SaveNewPicture public boolean (String SelectedFile, String UpdatedPhotoPath) {

HttpURLConnection conn = null; 
DataOutputStream dos = null; 
DataInputStream inStream = null; 
@SuppressWarnings("unused") 

String Message = null; // Chemin complet du nom de fichier à télécharger sur le serveur String exsistingFileName = SelectedFile;

String lineEnd = "\r\n"; 
String twoHyphens = "--"; 
String boundary = "*****"; 

int bytesRead, bytesAvailable, bufferSize; 

byte[] buffer; 

int maxBufferSize = 1*1024*1024; 

@SuppressWarnings("unused") 

Chaîne responseFromServer = "";

//Server path to the upload.php 
String urlString = "http://www.thelinkhookup.com/upload.php"; 

try 
{ 
//------------------ CLIENT REQUEST 

FileInputStream fileInputStream = new FileInputStream(new File(exsistingFileName)); 

// open a URL connection to the Servlet 

URL url = new URL(urlString); 

// Open a HTTP connection to the URL 

conn = (HttpURLConnection) url.openConnection(); 

// Allow Inputs 
conn.setDoInput(true); 

// Allow Outputs 
conn.setDoOutput(true); 

// Don't use a cached copy. 
conn.setUseCaches(false); 

// Use a post method. 
conn.setRequestMethod("POST"); 

conn.setRequestProperty("Connection", "Keep-Alive"); 

conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary); 

dos = new DataOutputStream(conn.getOutputStream()); 

dos.writeBytes(twoHyphens + boundary + lineEnd); 
dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + exsistingFileName +"\"" + lineEnd); 
dos.writeBytes(lineEnd); 

System.out.println("Headers are written"); 

// 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); 

// close streams 
System.out.println("File is written"); 
fileInputStream.close(); 
dos.flush(); 
dos.close(); 

} 
catch (MalformedURLException ex) 
{ 
return false; 
} 

catch (IOException ioe) 
{ 
Message = ioe.toString(); 
return false; 
} 

//------------------ read the SERVER RESPONSE 

try { 
inStream = new DataInputStream (conn.getInputStream()); 
String str; 

while ((str = inStream.readLine()) != null) 
{ 
//the str contains the server response 
System.out.println("Server Response"+str); 
} 
inStream.close(); 
//Message = "Should Have Worked"; 
} 

catch (IOException ioex){ 

return false; 
} 
try{ 
    HttpClient client = new DefaultHttpClient(); 
     HttpPost request = new HttpPost("http://thelinkhookup.com/UpdatePhotoName.php"); 
     List<NameValuePair> postParameters = new ArrayList<NameValuePair>(); 
     postParameters.add(new BasicNameValuePair("Username", MyGlobalInfomation.getUsername())); 
     postParameters.add(new BasicNameValuePair("Photopath", UpdatedPhotoPath)); 
     postParameters.add(new BasicNameValuePair("localphotopath",SelectedFile)); 
     UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters); 
     request.setEntity(formEntity); 
     @SuppressWarnings("unused") 

HttpResponse réponse = client.exécute (requête); if (SelectedFile! = Null || SelectedFile! = "") { MyGlobalInfomation.setLocalPhotoPath (fichier sélectionné); } } catch (Exception e) { return false; } return true; }

Répondre

0

Essayez-vous ceci contre différents sites Web ou juste un? La seule raison pour laquelle je demande est que vous avez mentionné que la taille> 1MB pourrait être la cause. Je connais certains sites d'hébergement Web qui offrent un espace web gratuit pour leurs membres, mais ils sont limités à 1 Mo au total par page Web (ou tout autre téléchargement). Si les membres veulent avoir de vrais sites de téléchargement, ils doivent payer pour la bande passante supplémentaire impliquée.

Désolé, cela ne répond probablement pas à votre question mais je pensais que vous pourriez vouloir vérifier que ce n'est pas la configuration du site avant de suspecter votre code.

+0

Ils ont dit non. Cela a donc quelque chose à voir avec le code. Quelqu'un a mentionné quelque chose à propos de BitmapFactory.Options.intsamplesize. Vous pensez que cela pourrait aider? Si oui, changez un peu mon code pour me montrer un exemple. S'il vous plaît aider, c'est la dernière chose que je ne peux pas comprendre. – Maurice

+0

J'ai essayé cela aussi, mais pas de chance BitmapFactory.Options size = new BitmapFactory.Options(); \t \t \t \t \t size.inSampleSize = 1; \t \t \t \t \t bmp = BitmapFactory.decodeStream (bis, null, taille); – Maurice