I have an ASP.NET web application which does the following:
- Reads an Excel file.
- The excel file will have an image URL located in it that points to somewhere on the internet.
- The program reads each image URL and store it into a temporary folder in the web server.
- The application then resizes (changes the width and height) of the image.
-
Finally, the application will save that image to another folder.
I am getting the following exception:
System.Net.WebException: An exception occurred during a WebClient request. —> System.UnauthorizedAccessException: Access to the path ‘\abcserver\target03\3111\35644\www.testing.com\web\content\images\TempStorage\tempImage.jpg’ is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at System.Net.WebClient.DownloadFile(Uri address, String fileName) — End of inner exception stack trace —
at ProcessImage.GetFileFromUrl(String imageFileUrl, String newFileName)
at uploadexceldata.UploadExcelData(String fileName)
foreach (DataRow dr in dt.Rows) // Reading each excel row { if (dr[0].ToString() != '') { id= ''; path = ''; manuId = ''; id= dr[0].ToString(); path = dr[1].ToString(); fileNameOnly = iProImg.GetFileNameOnly(path); objDb.openConnection(); strSqlGroupInfo = 'select ManufacturerID from manufacturers where id='' + id+ '''; dTblManu = objDb.BuildDT(strSqlGroupInfo); // To Fill data to Datatable objDb.closeConnection(); if (dTblManu.Rows.Count > 0) { manuId = dTblManu.Rows[0][0].ToString(); } if (manuId != '') { tempUploadPath = 'images/TempStorage/'; tempUploadPath = Server.MapPath(tempUploadPath); if (!Directory.Exists(tempUploadPath)) { Directory.CreateDirectory(tempUploadPath); } tempFilePath = tempUploadPath + '\\tempImage.jpg'; tempFilePath = tempFilePath.Replace('/', '\\'); previewPath = Server.MapPath('images/previews/' + manuId); thumbNailPath = Server.MapPath('images/thumbnails/' + manuId); if (!Directory.Exists(previewPath)) { Directory.CreateDirectory(previewPath); } if (!Directory.Exists(thumbNailPath)) { Directory.CreateDirectory(thumbNailPath); } fileNameOnly = '\\preview' + id+ '.jpg'; fileNameOnly = fileNameOnly.Replace('/', '\\'); previewPath = previewPath + fileNameOnly; tempPartialPathP = 'images\\previews\\' + manuId + fileNameOnly; fileNameOnly = '\\thumbnail' + id+ '.jpg'; thumbNailPath = thumbNailPath + fileNameOnly; tempPartialPathT = 'images\\thumbnails\\' + manuId + fileNameOnly; try { iProImg.GetFileFromUrl(path, tempFilePath); rowCounter++; iProImg.ReSizeImage(tempFilePath, previewPath, previewSize); iProImg.ReSizeImage(previewPath, thumbNailPath, thumbNailSize); } catch (Exception ec) { errorRowCount++; iLog.LogErrorToFile('uploadExcel', ec.ToString(), 'path : ' + path + ',tempFilePath :' + tempFilePath); } finally { if(File.Exists(tempFilePath)) { File.Delete(tempFilePath); } } } // If manuid!='' } //if (dr[0].ToString() != '')
Does anyone have any suggestions on how to fix this exception?
Try setting the access permissions to ‘Full control’ for the .Net user from where you are reading/saving the files.