如何显示存储在本地驱动器或网络驱动器上的图像? - c#

我有一个ASP页面,在其中我必须显示存储在本地磁盘C中的图像:在某些情况下,还需要显示网络驱动器中的图像
示例路径:-C:\ Users \ Public \ Pictures \ Sample Pictures \ Penguins.jpg
我已经在C#代码后面完成了以下代码

Image image = new Image();
image.Height = 150;
image.Width = 150;
string path = @"C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg";//this path will come from database dynamically this is for test only
image.ImageUrl = path;
this.Controls.Add(image);

但是图像没有显示出来,所以我偶然发现了this SO Question,并如下更新了代码

用于显示图像的页面

        Image image = new Image();
        image.Height = 150;
        image.Width = 150;
        string path = @"C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg";
        image.ImageUrl = "ImageWriter.aspx?path=" + path;
        this.Controls.Add(image);

和代理页面

        Response.ContentType = "image/jpeg"; // for JPEG file
        string physicalFileName = Request.QueryString["path"];
        Response.WriteFile(physicalFileName);

这工作正常,但我有两个问题

 1) Why the file is accessible from the physical path while proxy from page but other page cannot able to access it ? 
 2) And is there any other way to do it ?

任何帮助将非常感谢。

参考方案

1)为什么代理页面可以访问物理路径而其他页面不能访问它?

另一页即可。但是,其他页面无法访问该文件。只是将文件的路径设置为客户端(Web浏览器)对其进行访问的HTML输出。结果是:

<img src = "C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg" />

由于用户无权访问该文件,因此img标记将无效。 “代理”页面的目的是从用户可以访问的位置(该位置是代理页面)提供文件内容。

2)还有其他方法吗?

不。用户要么必须通过Web服务器上的某些虚拟路径直接访问文件,要么必须具有读取文件内容并将其发送给用户的代理。它与您的C#代码无关,与用户在Web服务器上看到的内容无关。除非该文件位于可通过Web访问的文件夹中,否则用户将看不到它。

这是在Web应用程序后面保护文件的非常通用和标准的方法。例如,有时您想要在允许用户查看文件之前检查用户的授权。如果该文件可公开访问,则可以直接进入该文件。但是,如果在用户和文件之间存在一个代理页面,则该页面可以强制执行授权。

asp:Image ImageUrl调用函数 - c#

我正在将VB.NET代码转换为C#。以下代码在C#中不起作用。有人可以帮忙语法吗?我已经尝试过ImageUrl =''仍然没有运气。问题是,它没有在后面的代码中调用setImage()函数。我收到以下错误:myPage.setImage(string)的最佳重载方法具有一些无效的参数。参数“ 1”:无法从“对象”转换为“字符串”aspx页面<asp:I…

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

Laravel Image Intervention避免旋转 - php

我正在上载由iPhone相机垂直拍摄的iPhone图像,其尺寸为2448x3264,并且当我创建600x360的拇指时,该尺寸非常高(?),它会自动旋转为水平。我尝试了什么但没有成功:更改拇指尺寸使用fit功能使用resize功能使用crop功能使用upsize和aspectRatio方法仅设置height并在width上使用null仅设置width并在he…

json数组,其中in数组返回错误?坏字符串 - javascript

我将json字符串文件解析为python,并且始终返回error。我使用了在线json格式化程序和验证器,它们也返回错误,因此我需要帮助使我的json正确并告诉我错误 [{ "sentence_id": "TR.00001", "sentence": { "text": …