开发者

How to display image which is stored in local drive?

开发者 https://www.devze.com 2023-01-04 18:43 出处:网络
I have a asp page in which i have to display the image which is stored in my local disk C: i.e.. C:\\Program Files\\Adrenalin\\Adrenalin\\UploadedFiles\\TemplateFile\\abc.jpg

I have a asp page in which i have to display the image which is stored in my local disk C: i.e.. C:\Program Files\Adrenalin\Adrenalin\UploadedFiles\TemplateFile\abc.jpg

how can i do that...i am not able to do so. the image i开发者_运维知识库s not displayed instead it shows a empty image holder with the name of the image as specified and URL as not available.

Please help....


You will have problems with permissions if the image is outside of the web site folder. Traditionally, web sites run under the NETWORK SERVICE user account, which will limit access to files outside of the folder. You will need to extract the file from a folder with similar access and it is extremely unwise to do so, particularly from Program Files.

You should possibly proxy the file via a web page or web service, which doesn't expose the fact that the image is served external to the web site. You'll need to make sure the target folder C:\Program Files\Adrenalin\Adrenalin\UploadedFiles\TemplateFile has NETWORK SERVICE Read-access.

eg. create a blank ASP.NET page:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageServer.aspx.cs" Inherits="ImageServer" %>

with the code behind:

class ImageServer
{
  void Page_Load(object sender, EVentArgs e)
  {
    Response.ContentType="image/jpeg"; // for JPEG file
    string physicalFileName=@"C:\Program Files\Adrenalin\Adrenalin\UploadedFiles\TemplateFile\abc.jpg";
    Response.WriteFile(physicalFileName);
  }
}

And test in your browser by going to the URL

http://<localhost>/<website>/ImageServer.aspx

You should get the image.

Then, within the tag, use the URL of the page as your image placeholder:

<img src="ImageServer.aspx" alt="Image served" />

UPDATE:

Looking at your latest comments, I suggest you send a QueryString parameter with some sort of employee code and use that to query the database and get the appropriate filename within the Page_Load() method. Don't send the filename as part of the QueryString.


What you're trying to do can work, but it's highly discouraged in Web development. Putting the permissions problems aside (which are very serious), you can never assume that your images will be available in the absolute path you provided on drive C:.

What you should do, is create a folder inside your website directory and use it to store the images, and use relative links instead of absolute links.

Even if you manage to make absolute links work now, prepare yourself for sever headaches in the future when running your application in different configurations.


copy the image in your project root folder and provide the image source as only the name of the image instead of the complete path. e.g., img src = "battlefield.jpg"

0

精彩评论

暂无评论...
验证码 换一张
取 消