Код для загрузки файла из библиотеки документов sharepoint 2007. Пожалуйста, исправьте меня в этом коде - PullRequest
0 голосов
/ 26 июля 2011

Я использую этот код для загрузки файла при нажатии кнопки. Код работает отлично, но существует только одна проблема: код выполняется идеально только в первый раз, то есть, во-первых, когда я нажимаю кнопку загрузки, файл загружается, но когда я нажимаю кнопку загрузки во второй раз, ничего не происходит. Поэтому, чтобы снова выполнить код, мне нужно обновить страницу (т.е. F5), как только обновление выполнено, затем снова код выполняется идеально, но только для первого клика. Пожалуйста, исправьте меня, что я делаю неправильно в этом коде, чтобы код работал идеально

try

{

int flag=0;

SPSite site = new SPSite(sharePointURL); 

SPWeb web = site.OpenWeb(); 

web.AllowUnsafeUpdates=true;

string strContentType=""; 
// docLib is the name of document library
SPFolder folder = web.GetFolder("docLib");

SPFileCollection files=folder.Files;
//"docLib" is name of document library and testFile.doc is the name of file
string url=sharePointURL+"/"+"docLib"+"/"+"testFile.doc"

SPFile tempFile = web.GetFile(url);

//Get the extension of File.

string []fext=this.filename[0].Split('.');

byte []obj=(byte[])tempFile.OpenBinary();


// Get the extension of File to determine the file type
string casestring="";
if(fext.Length>1)
{
 casestring= fext[fext.Length-1];
}
//set the content type of file according to extension
switch(casestring)

{

case "txt": 

strContentType = "text/plain";

break;

case "htm" : strContentType = "text/html";

break;

case "html" : strContentType = "text/html";

break;

case "rtf" : strContentType = "text/richtext";

break;

case "jpg" : strContentType = "image/jpeg";

break;

case "jpeg": strContentType = "image/jpeg";

break;

case "gif" : strContentType = "image/gif";

break;

case "bmp" : strContentType = "image/bmp";

break;

case "mpg" : strContentType = "video/mpeg";

break;

case "mpeg": strContentType = "video/mpeg";

break;

case "avi" : strContentType = "video/avi";

break;

case "pdf" : strContentType = "application/pdf";

break;

case "doc" : strContentType = "application/msword";

break;

case "dot": strContentType = "application/msword";

break;

case "csv" : strContentType = "application/vnd.msexcel";

break;

case ".xls": strContentType = "application/vnd.msexcel";

break;

case ".xlt": strContentType = "application/vnd.msexcel";

break;

default : strContentType = "application/octet-stream";

break;

}

Response.ClearContent();

Response.ClearHeaders();

Response.AppendHeader("Content-Disposition", "attachment; filename= "+filename[0]);

Response.ContentType = strContentType;
//Check that the client is connected and has not closed the connection after the request
if(Response.IsClientConnected)

Response.BinaryWrite(obj);

Response.Flush();

Response.Close();


}

catch(Exception ex)

{

} 

Спасибо Rushikesh

1 Ответ

2 голосов
/ 27 июля 2011

Я знаю, что случилось, просто поместите ниже коды в вашей голове aspx / ascx javascript.

<script type="text/javascript">

_spOriginalFormAction = document.forms[0].action;
_spSuppressFormOnSubmitWrapper = true;

</script>

после этого вы сможете скачивать более одного раза.

...