Problem med länkar till filströmmar, de öppnas ej.

Discussion in 'Frågor, support och diskussion' started by Lezlow, Aug 24, 2010.

  1. Lezlow

    Lezlow Kid Droid Medlem

    Joined:
    Apr 22, 2010
    Messages:
    31
    Likes Received:
    15

    MINA ENHETER

    Jag håller på att utveckla en mobil websida där man skall kunna ladda ner pdf och .doc filer.

    Pga av säkerhetsåtgärder så kan jag inte länka direkt till filerna utan länkar istället till en filström som skicka filerna på begäran.

    Problemet är att när jag klickar på länken så händer det ingenting. Om jag klickar på samma länk i en Nokia med symbian s60 så sparas filen ner och med en iphone så öppnas dokumenten direkt. (givetvis fungerar det felfritt på datorn).

    Vilken som helst av dessa två reslutat är okej, men nu måste jag istället hålla inne på länken och välja "Spara länk" för att kunna spara ner dokumenten.

    Har någon annan stött på detta problem? jag har sökt och kan inte finna något svar.


    ps. har även provat med andra browsers;opera mini,dolphin,skyfire,steel. Alla med samma resultat.

    mvh Andreas
     
  2. johannilsson

    johannilsson Adult Droid Medlem

    Joined:
    Jun 23, 2009
    Messages:
    577
    Likes Received:
    8

    MINA ENHETER

    Sätter du korrekt mime type?
     
  3. Lezlow

    Lezlow Kid Droid Medlem

    Joined:
    Apr 22, 2010
    Messages:
    31
    Likes Received:
    15

    MINA ENHETER

    Jepp, men tack för tipset! i det specifika pdf fallet så sätts "application/pdf"

    Inte ens när jag försöker få den att öppna "Save as"-dialogen så fungerar det.

    objResponse.AddHeader("Content-Disposition", "attachment;filename=\"" + file.Name + "\"");
    bjResponse.ContentType = "application/octet-stream";


    Det jag kan se när jag följer exekveringen är att allting går bra framtills att filen ska börja strömmas, då avbryter android browsern efter en iteration i följande loop:



    for (i = 0; i <= storeStream.Length; i += chunkSize)
    {
    // Everytime check to see if the browser is still connected

    if ((!objResponse.IsClientConnected))
    {
    break; // TODO: might not be correct. Was : Exit For
    }

    int size = chunkSize;
    if ((i + chunkSize >= storeStream.Length))
    {
    size = (Convert.ToInt32(storeStream.Length) - i);
    }

    byte[] chunk = new byte[size];
    storeStream.Read(chunk, 0, size);
    objResponse.BinaryWrite(chunk);
    objResponse.Flush();
    }