`
yeak2001
  • 浏览: 103109 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

Use IO Stream Response image

阅读更多
  最近的一个项目分成web site和 admin site2个站点.然后就遇到一个web下new sign permit,然后到admin下审批的问题.问题的关键在于web下的那个功能有个上传文件的功能.文件可能是image,也可以是doc,pdf,如果是image就需要display.
  问题在于2个站点并不能共享upload目录,也就是web上传的,admin并不能访问.查询了相关资料以后有以下几个解决方案:
1.存数据库2进制流,读取都方便
2.存IO stream, 存在服务器physical path,这样就不用care共享的问题了,2边都往同一个目录下upload.

第2个方法就有个读取显示图片的问题.不在server控制的目录下如何显示图片呢.显然不能简单的<image src="xxx.img" />,不可能简单的把物理路径写在image标签里,到了客户端根本没办法解析.这里就得用IO stream把图片取成 byte,然后response到一个单独的页面上
step1:
create empty page, in the page write init function

private void createImage(String imagePath)
    {
        if (imagePath != null && imagePath != String.Empty)
        {
            Response.ContentType = "image/jpeg";
            byte[] bytes = null;
            Stream stream = null;
            try
            {
                stream = new FileStream(imagePath, FileMode.Open);
                using (MemoryStream ms = new MemoryStream())
                {
                    int b;
                    while ((b = stream.ReadByte()) != -1)
                    {
                        ms.WriteByte((byte)b);
                    }
                    bytes = ms.ToArray();
                }

                Response.BinaryWrite(bytes);
                Response.Flush();
            }
            catch (Exception ex)
            {
                bytes = null;
            }
            finally
            {
                if (stream != null)
                    stream.Close();
            }
        }
    }

这样就可以产生一个显示图片的页面
step 2: 把这个页面的url放到<image src="viewImage.aspx?"imagePath="xxx" />
这样就可以显示图片了.

另外download也可以用上面的strem做,只需要加上
 Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
Response.ContentType = type;
分享到:
评论

相关推荐

    ffmpeg, use to publish stream, play stream

    ffmpeg

    rapidio use guide

    根据提供的文档信息,我们可以归纳出一系列与RapidIO(尽管文档中提到的是“Arria V Hard IP for PCI Express”,但基于题目要求我们聚焦于RapidIO)相关的关键知识点。接下来,我们将围绕这些知识点进行深入探讨。 ...

    v-use-edit-image

    v-使用编辑图像 v-use-edit-image是Vue合成API库,用于使用canvas API编辑图像。 您可以像这样蒙版图像! 而且,您可以裁剪,插入字符串并在图像上方绘制图像。 (当前,此回购仅包含掩码示例...对不起!) :rocket:...

    use-image:用于加载图像的自定义 React Hook

    npm install use-image 用法 import React from 'react' ; import { Image } from 'react-konva' ; import useImage from 'use-image' ; const url = 'https://konvajs.github.io/assets/yoda.jpg' ; function ...

    yolov8系列--Use Deepstream python API to extract the model o.zip

    在本教程中,我们将深入探讨如何使用DeepStream SDK的Python API来提取YOLOv8模型。YOLO(You Only Look Once)是一种流行的实时目标检测算法,而DeepStream是由NVIDIA开发的一个强大的SDK,用于构建高性能的AI推理...

    process-image-set-size-test.zip use python set image test

    process_image_set_size_test.zip use python set image test

    intervention-image

    use Intervention\Image\ImageManagerStatic as Image; Image::configure(['driver' =&gt; 'imagick']); $image = Image::make('public/foo.jpg'); ``` #### 四、HTTP 响应 **1. 直接输出到浏览器** ```php $image ...

    perl IO-SOCKET

    use IO::Socket::INET; my $server = IO::Socket::INET-&gt;new( LocalAddr =&gt; 'localhost', LocalPort =&gt; 8080, Proto =&gt; 'tcp', Listen =&gt; 5, ReuseAddr =&gt; 1 ) or die "Cannot bind: $!"; print "Server ...

    VUE 修复MOCKJS ResponseType BUG

    axios.interceptors.response.use( response =&gt; { // 处理responseType,确保数据格式正确 return response; }, error =&gt; { // 错误处理 } ); ``` 4. **更新和兼容性**:确保你正在使用的MOCKJS和前端...

    canvas2image-master

    you can just use it like this Canvas2Image.saveAsImage(canvasObj, width, height, type) Canvas2Image.saveAsPNG(canvasObj, width, height) Canvas2Image.saveAsJPEG(canvasObj, width, height) Canvas2...

    socket.IO的PHP版本PHPSocket.IO.zip

    PHPSocket.IO 是 socket....$io-&gt;on('connection', function($socket)use($io){  $socket-&gt;on('chat message', function($msg)use($io){  $io-&gt;emit('chat message', $msg);  }); }); 标签:PHPSocket

    OpenStack Virtual Machine Image Guide

    Configuring the Glance servers to use Keystone Configuring Glance API to use Keystone Configuring Glance Registry to use Keystone The Glance Image Cache Managing the Glance Image Cache Configuration ...

    C#利用ffmpeg的image2pipe参数实现USB摄系头本地预览同时推流

    在C#中,可以使用`System.IO.Pipes`命名空间中的类来创建管道。这将使我们能够将摄像头的视频流作为输入,然后将其转发到其他进程。 2. **捕获摄像头流**: 使用ffmpeg命令行工具,设置`image2pipe`输入格式,从...

    Laravel开发-image

    use Intervention\Image\Facades\Image; public function store(Request $request) { $image = $request-&gt;file('image'); $filename = time() . '.' . $image-&gt;getClientOriginalExtension(); // 使用 ...

    PHP 图像处理组件:Intervention/image

    use Intervention\Image\Facades\Image; $image = Image::make('public/image.jpg'); ``` `make` 方法接收一个文件路径或一个已经打开的图像资源,并返回一个 `Image` 对象,你可以在这个对象上执行各种操作。 接...

    Signal Processing: Image Communication

    In conclusion, the research presented in "Signal Processing: Image Communication" focuses on enhancing the efficiency and reliability of image communication through the use of DASH in a CDN....

    Digital Image Processing and Analysis, 2nd Edition

    Whether for computer evaluation of otherworldly terrain or the latest high definition 3D blockbuster, digital image processing involves the acquisition, analysis, and processing of visual information ...

    Laravel开发-laravel-pdf-to-image

    use Spatie\PdfToImage\Facades\PdfToImage; class PdfController extends Controller { public function convert(Request $request) { $pdfPath = $request-&gt;file('pdf')-&gt;getRealPath(); // 获取上传的 PDF ...

Global site tag (gtag.js) - Google Analytics