单击按钮时获取 asyncfileupload 控件文件名

2023-12-22

我在我的 asp.net 页面上使用 ajaxfileupload 控件。上传图像后,我调用 uploadcomplete 方法将图像保存在磁盘上并使用以下 JavaScript 在图像控件中显示:

  string fileName = Guid.NewGuid() + Path.GetExtension(PhotoAFU.FileName.Trim()); // encrypt filename 

                    string filePath = Path.Combine(storagePath, fileName);
                    string fileVirtPath = GetImageUrl(fileName); 

       int rnd = new Random((int)DateTime.Now.Ticks).Next(1, 1000);
                    ScriptManager.RegisterClientScriptBlock(PhotoAFU, PhotoAFU.GetType(), "img",
                        String.Format(
                            @"top.document.getElementById('{0}').src='{1}?x={2}';
                            top.document.getElementById('{3}').value = '{4}'",
                            EditPhotoImage.ClientID,
                            fileVirtPath,
                            rnd,
                            UploadedImageFileNameHF.ClientID,
                            fileName),
                        true
                );

现在我单击保存按钮并尝试使用以下代码获取图像:

Path.GetFileName(EditPhotoImage.ImageUrl) // shows old image


or


Path.GetFileName(PhotoAFU.FileName) // it shows actual image name not encrypted one

但它们都显示旧图像而不是当前图像或实际图像名称而不是加密名称。如何在此方法中从上述方法获取文件名?我尝试使用 viewstate 但它无法正常工作。


您可以将数据从服务器传递到客户端PostedUrl的财产AjaxFileUploadEventArgs参数输入UploadComplete事件处理程序作为 JSON 对象并获取此数据OnClientUploadComplete客户端处理程序:

protected void AjaxFileUpload1_OnUploadComplete(object sender, AjaxFileUploadEventArgs e)
{
    string fileName = Guid.NewGuid().ToString();
    string fileVirtPath = "foobar";

    e.PostedUrl = string.Format("{{ fileName: '{0}', imageSrc: '{1}?x={2}' }}", 
        fileName, fileVirtPath, new Random((int)DateTime.Now.Ticks).Next(1, 1000));
}

 function AjaxFileUpload1_OnClientUploadComplete(sender, args) {
      var fileInfo = Sys.Serialization.JavaScriptSerializer.deserialize(args.get_postedUrl());
      $get("<%= EditPhotoImage.ClientID %>").src = fileInfo.imageSrc;
      $get("<%= UploadedImageFileNameHF.ClientID %>").value = fileInfo.fileName;
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击按钮时获取 asyncfileupload 控件文件名 的相关文章

随机推荐

  • 为什么 args.add_argument 在两个单独的语句中给出时有效,但在 python 中却无效?

    我正在尝试使用 argparse 模块来解析命令行中的参数 这是示例代码 import argparse parser argparse ArgumentParser parser add argument bar parser add a
  • 使用 bquote 和向量变量的图例

    我想用包含 4 行的 bquote 绘制图例 kappa 0 5 kappa 1 kappa 1 5 kappa 5 示例 kappa var lt c 0 5 1 0 1 5 5 0 plot 1000 type n xlab x yla
  • 如何获取使用顶级语句的 C# 9 程序的 Reflection TypeInfo?

    假设我有一个用 C 9 编写的简单脚本 如下所示 using System using System IO What to put in the var exeFolder Path GetDirectoryName typeof Asse
  • 如何突出显示 mat-table Angular 7 中新插入的行

    我有一个 mat table 在其中显示行列表 我有一个添加新按钮 用户可以通过该按钮手动添加行 工作堆栈闪电战 https stackblitz com edit angular axjzov 8zmcnp https stackblit
  • 使用 string.format 在字符串中插入空格

    我之前一直使用 C String Format 来格式化数字 在本例中我只是想插入一个空格 String Format 0 123456 output 123 456 在这种特殊情况下 数字是一个字符串 我的第一个想法是简单地将其解析为一个
  • 我的静态搜索有问题吗?

    当我尝试实现 QuiesenceSearch 时 我的基于 negamax 的人工智能不断出现奇怪的行为 我基于来自的伪代码here https chessprogramming wikispaces com Quiescence Sear
  • 有什么方法可以识别PHP中的F5刷新吗?

    有什么方法可以识别是否有人使用 PHP 刷新了当前页面而不是从其他地方到达 我只能访问当前页面的代码 因此无法从其他页面传递任何内容进行检查 您的问题的标题表明您正在专门寻找一种方法来检测何时使用 F5 键刷新页面 如果是这种情况 您肯定需
  • 为什么 pandas groupby().transform() 需要唯一索引?

    我想使用 groupby transform 对 已排序 数据集中的每个记录块进行自定义 累积 转换 除非我确保我有唯一的密钥 否则它不起作用 为什么 这是一个玩具示例 df pd DataFrame 1 1 1 2 2 3 3 4 3 5
  • 如何在不冒 OOM 杀手风险的情况下 mmap() 大文件?

    我有一个嵌入式 ARM Linux 机器 其 RAM 量有限 512MB 且没有交换空间 我需要在其上创建并操作一个相当大的文件 200MB 将整个文件加载到 RAM 中 修改 RAM 中的内容 然后再次将其写回有时会调用 OOM kill
  • 如何更改 xcode 4 中的文件路径?

    我有一个项目 其中有几个文件是红色的 在 XCode 3 中 我曾经单击文件 获取信息 并更改路径 但我不知道如何在新的 XCode 4 中执行此操作 单击您的文件 然后打开右侧窗格 右上角有一个按钮 在那里您将看到身份和类型 在位置下拉菜
  • 从 Java 中创建 SQL 批量更新

    我想更新 mySql 数据库中特定列上的每一行 目前我正在使用java sql PreparedStatement对于每一行并在 for 循环中迭代 我想知道在 Java 编程方面是否还有其他替代方案可以减少时间和资源消耗 比如批量执行准备
  • 内容安全策略指令“script-src”的源列表包含 safari Angular 5 中的无效源

    我已经在 Angular 5 中实现了 google recapthca 它对所有浏览器都运行良好 但在 safari 中我收到以下错误 内容安全策略指令 script src 的源列表包含无效源 strict dynamic 它将被忽略
  • 使用 jq 创建 JSON 文件

    我尝试通过执行以下命令来创建 JSON 文件 jq arg greeting world hello greeting gt file json 该命令在没有任何输入的情况下卡住了 尽管 jq n arg greeting world he
  • 如何从 Deno 运行任意 shell 命令?

    我想从 Deno 运行任意 bash 命令 就像使用child process在节点中 这在 Deno 中可能吗 Deno 1 28 0 添加了一个新的 API 来运行 shell 命令 Deno Command https deno la
  • 在 Weblogic Server 中使用 JAXB 解组

    具体规格 服务器 由客户修复的Weblogic 9 2 由客户修复的 wsdl 和 xsd 文件定义的 Web 服务 不允许修改 Hi 在项目中我们需要开发一个邮件系统 这必须与网络服务共同工作 我们创建一个 Bean 它从非根 xsd 元
  • 在 javascript 中检测同一应用程序打开的多个 chrome 选项卡

    有没有办法检测同一应用程序是否打开了多个浏览器选项卡 假设我有 www test com 并且我打开了该网站的 4 个选项卡 有没有办法检测 JavaScript 中打开的多个选项卡 你可以用我的sysend js 库 https gith
  • 获得 Vaadin 树物品的兄弟姐妹?

    我需要获取 Vaadin 树中特定项目的兄弟姐妹 我可以做这个 Object itemId event getItemId Object parentId tree getParent itemId Collection siblings
  • Haskell初学者,尝试输出一个列表

    我想这里的每个人都已经看过其中一个 或至少是类似的 问题 但我仍然需要问 因为我在任何地方都找不到这个问题的答案 主要是因为我不知道我到底应该看什么 为了 我写了这个小脚本 其中 printTriangle 应该打印出帕斯卡三角形 fac
  • 无法消除 Firefox 链接中的虚线轮廓?

    我有一个完整的 imgs 列表 ul li a href img src test png li gt a li li a href img src test png li gt a li li a href img src test pn
  • 单击按钮时获取 asyncfileupload 控件文件名

    我在我的 asp net 页面上使用 ajaxfileupload 控件 上传图像后 我调用 uploadcomplete 方法将图像保存在磁盘上并使用以下 JavaScript 在图像控件中显示 string fileName Guid