2013-12-03 6 views
0

Веб-системы (точно такие же сайты) были перенесены на новые серверы. Вложения mif-типа tif-файлов работали на предыдущих серверах в производстве, и ни один код не был изменен, но с момента миграции мы не можем открыть специально файл .tif. Файлы PDF вращаются на пустую страницу в браузере.Mime-type .tif/pdf файлы повреждены и не откроются. NET V2.0

Этот код вызывает WebService (который прекрасно работает), чтобы получить документ кэша из среды JDE

object[] file = docA.CacheDocument("/" + path, filename, doctype, xxx.Global.JDEEnvironment); 

fileSize = (int)file[0]; 
mimeType = (string)file[1]; 

Там не проблема возвращения типа пантомимы, который является «изображение/размолвка». Настройки установлены на уровне сервера, чтобы принимать оба .tif и .tiff в свойствах MIME-TYPE.

HttpContext.Current.Response.ClearHeaders(); 
HttpContext.Current.Response.ClearContent(); 
HttpContext.Current.Response.Buffer = true; 
HttpContext.Current.Response.ContentType = mimeType; 

string tempPath = "/" + path; 
string tempFile = filename; 


int i = 0; 
while (i < fileSize) 
{ 
    int[] byteRangeAry = new int[2]; 
    byteRangeAry[0] = i; 
    if ((i + _chunkSize) < fileSize) 
    { 
     byteRangeAry[1] = i + _chunkSize; 
    } 
    else 
    { 
     byteRangeAry[1] = fileSize; 
    } 

    var docdata = docA.GetByteRange(tempPath, tempFile, byteRangeAry); 
    HttpContext.Current.Response.BinaryWrite(docdata); 
    HttpContext.Current.Response.Flush(); 

    //Move the index to the next chunk 
    i = byteRangeAry[1] + 1; 
} 

HttpContext.Current.Response.Flush(); 

Этот snipit является нетронутым кодом, который работал в производстве, и теперь ошибки устранены с помощью ссылки на объектную ошибку.

var docdata = docA.GetByteRange(tempPath, tempFile, byteRangeAry); 

Однако, когда я добавить .mime расширение, к TempFile, он больше не ошибки, и получает ByteRange.

var docdata = docA.GetByteRange(tempPath, tempFile + ".mime", byteRangeAry); 

появляется диалоговое окно - загружает файл - но открывается пустой или сообщение об ошибке говорящее файл, как представляется, ущерб, поврежден или слишком велик. Я пробовал открытие в нескольких других форматах безрезультатно. Это происходит с файлом .tif. PDF-файл просто оставляет пустую страницу в браузере без диалогового окна загрузки параметров.

Это тот же код, который работал в производстве и является приложением .NET V2. Любые предложения будут высоко ценится.

ответ

0

Это решение было решено. Мы повторно написали метод Get CacheDocument, который искажал заголовок. Теперь это метод GetDocument, и теперь мы можем захватывать документы и загружать их. Проблема заключалась в коде, все же странно, что он работал в предыдущем выпуске.