【问题标题】:How to allow user to paste image on web page?如何允许用户在网页上粘贴图像?
【发布时间】:2017-02-07 21:11:10
【问题描述】:

我想允许用户在网页上粘贴图片。在对 Stack Overflow 进行研究之后,O 确实找到了一种使用画布粘贴图像的方法,但每次我在下拉菜单中选择一个元素时,画布也会被重置。有没有其他方法可以做到这一点?我还需要获取无法通过画布的图像路径。

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        Welcome to ASP.NET!
    </h2>
    1. Copy image data into clipboard or press Print Screen <br>
2. Press Ctrl+V (page/iframe must be focused):
<br /><br />
<canvas contenteditable style="border:1px solid grey;" id="cc" width="200" height="200">
<script type="text/javascript">
    var canvas = document.getElementById("cc");
    var ctx = canvas.getContext("2d");

    //=== Clipboard ===============================

    window.addEventListener("paste", pasteHandler); //chrome
    //handler
    function pasteHandler(e) {
        if (e.clipboardData == false) return false; //empty
        var items = e.clipboardData.items;
        if (items == undefined) return false;
        for (var i = 0; i < items.length; i++) {
            if (items[i].type.indexOf("image") == -1) continue; //not image
            var blob = items[i].getAsFile();
            var URLObj = window.URL || window.webkitURL;
            var source = URLObj.createObjectURL(blob);
            paste_createImage(source);
        }
    }
    //draw pasted object
    function paste_createImage(source) {
        var pastedImage = new Image();
        pastedImage.onload = function () {
            ctx.drawImage(pastedImage, 0, 0);
        }
        pastedImage.src = source;
    }

</script>
</asp:Content>

【问题讨论】:

  • 也许你应该发布你的代码
  • Dropzone.js 会帮助你。在此处查看示例 wrapbootstrap.com/preview/WB0R5L90S 然后转到表单 > 文件上传。
  • 如何在此处添加我的代码,任何人都可以告诉我/
  • 好吧,伙计们,我整理了一种方式,我将所有下拉菜单都放在更新面板中,这样它就不会重置画布。现在我想将粘贴在画布中的图像保存到一个文件夹中,这可能吗?如何?

标签: c# html asp.net


【解决方案1】:

将下拉菜单添加到更新面板中。这样它就不会刷新整个页面,因此您粘贴的图像不会消失。

否则

请参考此链接。

http://www.c-sharpcorner.com/article/copying-and-pasting-on-clipboard-using-C-Sharp/

先将图片存储在剪贴板中,然后在下拉选择更改后调用剪贴板图片并将其加载到图片框中。

【讨论】:

  • 谢谢你,但你能回答我在评论中提到的下一个问题,即想将粘贴在画布中的图像保存到文件夹中吗?如何?
  • 我也想将该图像保存在数据库中,然后检索它。是否可以通过画布。我尝试了很多方法:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多