使用 C# 读取附加到 HTTP 扩展的 BLOB

2024-01-15

所以我使用第三方服务来编辑我的XML存储在服务器路径上的文件。现在,一旦我完成编辑XML,我将文件保存到本地内存存储,该存储生成附加到 URL 的 BLOB。

Example:

blob:http://localhost/0e06af7a-a1a9-4bf1-a79a-78a1e107648f

哪里的0e06af7a-a1a9-4bf1-a79a-78a1e107648f是为当前编辑创建的令牌。现在,当我在浏览器中运行上述 URL 时,我可以看到:

我的问题是:如何使用 C# 读取上述 URL,然后将内容保存到一个对象,稍后我可以使用该对象上传到文件或云。我尝试过使用WebClient:

WebClient client = new WebClient();
Stream stream = client.OpenRead("blob:http://localhost/0e06af7a-a1a9-4bf1-a79a-78a1e107648f");
StreamReader reader = new StreamReader(stream);
string str= reader.ReadToEnd();

但它给了我一个错误说URL是不正确的,应该从HTTP or HTTPS.

编辑:我可以使用 JQuery 将 blob 保存到文件中:

var download = $('<a>Download ' + "file.xml" + '</a>').attr("href", "blob:http://localhost/0e06af7a-a1a9-4bf1-a79a-78a1e107648f");
download.attr("download", "file.xml");

这样就成功创建了一个名为file.xml并下载文件。我希望将这个 blob 内容保存在服务器端,以便我可以将其发送到Amazon S3 bucket.

再次编辑:

所以,目前我已经保存了XML作为字符串,我尝试通过 AJAX 将其发送到 C# 控制器,但遇到 500 内部服务器错误。

        var xmlString = self.xml2Str(self.xmlState.xml);
        //console.log(xmlString);
        var blob = new Blob([xmlString], { type: "text/xml" }); 
        console.log(blob);
        var url = URL.createObjectURL(blob);
        console.log(url);
        var json = {
            xmlString: xmlString
        };

        var test = JSON.stringify(json);
        console.log(test);

        try {
            $.ajax({
                url: BaseURL + "Home/SendXMLToS3",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: { "json": test},
                type: "POST",
                success: function (data) {
                    //TODO: Add whatever if you want to pass a notification back
                    alert("Done");
                },
                error: function (error) {
                    //TODO: Add some code here for error handling or notifications
                    alert("Not Done");
                }
            });
        }
        catch (err) {
            console.log(err);
        }

的内容test变量如下(来自控制台):

{"xmlString":"<nitf>\n  <head>\n    <docdata>\n      <identified-content>\n        <classifier id=\"box-geometry\" value=\"147,623,250,790\" />\n        <classifier id=\"uuid\" value=\"Mv8XVAViEeqyc3SUunSxMg\" />\n      </identified-content>\n    </docdata>\n  </head>\n  <body>\n    <body.head />\n    <body.content>\n      <p>\n        <lang fontStyle=\"regular\" style=\".Bodylaser\">How is this different from Pegasus?</lang>\n      </p>\n      <p>\n        <lang fontStyle=\"regular\" style=\".Bodylaser\">Pegasus could be installed on your phone without your knowledge through just a missed WhatsApp video call. In the case of the new breach, a user has to manually download the MP4 file sent to them before any malicious code can be run. The problem is not with WhatsApp’s end-to-end encryption feature here. Getting remote access to your phone is the equivalent of actually holding it in one’s hand. End-to-end encryption is meant to stop attackers from stealing or snooping on chats in between. So, unless someone has access to your device, they can’t actually read your chats, even if they intercept them.</lang>\n      </p>\n    </body.content>\n  </body>\n</nitf>"}

还尝试将默认的 ASP.NET 默认启用请求验证设置为 false,以帮助防止 XSS。

    [HttpPost]
    [ValidateInput(false)]
    public ActionResult SendXMLToS3(string json)

但同样的 500 错误仍然存​​在:jquery.min.js:4 POST http://localhost/DEGit/Home/SendXMLToS3 500 (Internal Server Error) in the h.send(c.hasContent&&c.data||null) method.

我怎么能够:

  1. 读取生成的blobC# 中的 URL 内容?
  2. 发送test通过 AJAX 到 C# 的字符串?
  3. 还有什么大家可以建议的。

Thanks


正如您在评论中所要求的:我制作了简单的控制器和 JS 代码来命中httppost使用 ajax 的控制器中的方法:

  1. 控制器方法:
[HttpPost]
public JsonResult SendXMLToS3(string json)
{
    return Json(new { Result = "PASS", Message = "testing SendXMLToS3" });
}
  1. JS code:
<script type="text/javascript">
    function myfunction() {

        var test = { "xmlString": "<nitf>...</nitf>" };
        $.ajax({
            type: "post",
            url: "/Home/SendXMLToS3",
            dataType: "json",
            data: { "json": test },
            success: function (res) {
                alert(res.Message);
            },
            error: function (res) {
                //TODO: Add some code here for error handling or notifications
                alert("Not Done");
            }
        });
    }
</script>

Findings:
线路contentType: "application/json; charset=utf-8",导致内部 500 错误,如果删除它,应该没问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C# 读取附加到 HTTP 扩展的 BLOB 的相关文章

  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • 使用 Parcelable 是在应用程序之间发送数据的正确方法吗?

    我试图了解如何在 Android 中的应用程序之间进行通信 而不仅仅是在应用程序之间进行通信Activity实例 我设置了一个 客户端 将 Messenger 对象发送到服务 在Intent发送到服务 该服务创建了一个Messageobj
  • 调整 Dash-Plotly 中下拉菜单选项的宽度

    我正在尝试基于 Plotly 在 Python 中使用 Dash 构建一个应用程序 我很难调整下拉菜单选项的宽度 我在下面附上了代码和图像 我希望下拉选项的宽度与菜单宽度相同 app layout html Div children htm
  • 如何在适配器内的列表视图项内添加地图片段?

    我有一个列表视图 我想在每个列表项中添加地图 当我单击列表项时 地图将显示 隐藏 当地图显示时 我可以在其上缩放 查看位置详细信息 但我无法在适配器中设置 MapFragment 那么 给我一些解决方案 谢谢 gMap MapFragmen
  • 使用 R microbenchmark 和 system.time 有什么区别?

    我想了解 R 的 microbenchmark 和 system time 之间的区别 他们如何在内部测量函数执行时间 在这两种情况下 运行时间都是使用操作系统工具计算的 因此 如何计算运行时间取决于操作系统 如详细信息部分所述 syste
  • TypeORM保存嵌套对象

    我正在开发一个express 使用TypeORM ReactJS应用程序 问题是我有 3 个通过 OneToMany 关系链接的实体 如下所示 customer 产品 链接到客户 型号 与产品相关 import Product from p
  • 消息:安装 Composer 后在 php.ini 中设置 sys_temp_dir

    我尝试为我的 CodeIgniter 项目安装作曲家 安装成功 但是 当我在命令行上输入时composer version 表明 PHP temp directory C Users petik AppData Local Temp doe
  • Azure Devops 管道 ArchiveFiles 错误:无法找到可执行文件:“zip”

    我正在为 python 包构建创建 Azure DevOps 管道 但任务 ArchiveFiles 2 失败 stage Build jobs job BuildApp pool vmImage ubuntu latest task Ar
  • 如何删除 datagrid wpf 中选定的行?

    我正在使用 WPF datagrid 我需要删除选定的 Row 我的代码是 private void dataGridView1 PreviewKeyDown object sender KeyEventArgs e if e Key Ke
  • 如何在考虑到图块标高的情况下计算等距世界中鼠标下方图块的索引

    我有一个基于图块的等距世界 我可以使用以下计算来计算哪个图块位于特定 鼠标 坐标下方 function isoTo2D pt Point Point var tempPt Point new Point 0 0 tempPt x 2 pt
  • Phonegap - 首次加载时创建 .txt 文件

    我正在创建一个phonegap应用程序 需要在首次加载时创建一个新的 txt文件 之后我需要检查文件是否存在 如果存在则忽略创建 下面是我之后的一般流程 1 onDeviceReady 加载 phoengap 应用程序 2 检查 readm
  • 为什么已安装的软件包不显示我刚刚安装的软件包?

    我已经开始使用 Nuget 了 我的一些项目允许我将库包引用添加到 Nuget 包 但是当我选择 已安装的包 时 我没有看到列出任何包 为什么不 编辑 我知道答案 见下文 我本来打算作为 社区服务 自己回答这个问题 但由于我蹩脚的代表分数
  • 整个页面上的 jQuery 验证

    我有一个用 ASP NET MVC 3 开发的网页 我正在使用 jQuery 验证器来验证我的字段 validator setDefaults errorContainer validationSummary validationNotic
  • numpy 'isin' 性能改进

    我有一个包含 383milj 行的矩阵 我需要根据值列表过滤该矩阵 index to remove 该函数在 1 次迭代期间执行多次 有没有更快的替代方案 def remove from result matrix index to rem
  • Spring-Kafka 的替代方案(Kafka 库/实现)

    我想要 Spring Kafka 的替代方案的建议 我在我的应用程序中使用了集成在 Spring 中的 Kafka 我想探索任何可用的替代库 如果比较分析能在图书馆之间共享就好了 除了普通的 Java API Putsite github
  • 在 Google Cloud Run 上运行 Python gRPC 服务器

    我有一个基本的概念验证 Python gRPC 服务器 当我在本地运行 Docker 容器时 我可以向服务器发出请求并在公开的端口上接收响应 我可以成功地将服务器部署到 Cloud Run 并且我看到该服务在 Cloud Run UI 中运
  • JavaScript - window.onload - 将
    的内容放到新窗口上

    我想写一个javascript 当页面加载时 获取 a 的内容 div 标签和 将该内容放置在弹出页面上 对剧本有什么想法吗 我知道如何导航到该元素 但不知道如何复制内容 div 的内容将是这样的 div div class errorpa
  • 有基于文本的 mysql 用户界面吗?

    我不是指标准的 mysql client CLI 而是类似于午夜指挥官 http www midnight commander org 是文件系统管理 基本 cli 的简单命令历史记录还不错 但在测试更复杂的查询时确实没有什么用处 而且数据
  • 在 C++ 中动态增长数组

    我有一个 CName 对象指针数组 我有以下构造函数 它将数组初始化为大小一 然后 当我添加一个对象时 我将数组增加 1 并添加新对象 它编译得很好 但是当我尝试打印它们时 我只是收到分段错误错误 你能帮我看看我有没有做错什么吗 const
  • 部署keycloak自定义spi部署

    我尝试在我的 keycloak 项目中创建一个自定义 spi 遵循基本的 keycloack 结构 我添加自定义提供程序接口 该接口扩展提供程序 自定义提供程序工厂并为它们实现自定义 spi 如 keycloak 文档所述 并且它们在源代码
  • 使用 C# 读取附加到 HTTP 扩展的 BLOB

    所以我使用第三方服务来编辑我的XML存储在服务器路径上的文件 现在 一旦我完成编辑XML 我将文件保存到本地内存存储 该存储生成附加到 URL 的 BLOB Example blob http localhost 0e06af7a a1a9