使用 Ajax 通过模式上传文件

2023-11-29

我想使用 Ajax 通过模式上传文件。我怎样才能做到这一点?

我的模式:

<div id="addBtn" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h5 class="modal-title" id="myModalLabel">Add a medicine</h5>
      </div>
      <div class="modal-body">
        <form>
          <div class="form-group">
            <label class="control-label mb-10">Generic Name</label>
            <select class="form-control" name="medicine_id" id="medicine_id">
              @foreach($items as $item)
              <option value="{{$item->id}}" >{{$item->generic_name}}</option>
              @endforeach
            </select>
          </div>

          <div class="form-group">
            <label class="control-label mb-10">Dosage Volume</label>
            <input type="text" name="dosage_name" id="dosage-volume" class="form-control" placeholder="Example: 20mg">
          </div>

          <div class="form-group">
            <label class="control-label mb-10">Form</label>
            <input type="text" name="form" id="form" class="form-control" placeholder="Bottle, Tablet">
          </div>

          <div class="form-group">
            <label class="control-label mb-10">Price Per piece</label>
            <input type="text" name="price" id="price" class="form-control" placeholder="Price">
          </div>

          <div class="form-group">
            <label class="control-label mb-10">Insert a photo</label>
            <div class="panel-wrapper collapse in">
              <div class="panel-body">
                <div class="mt-20">
                  <input type="file" name="photo" id="input-file-now" class="dropify" >
                </div>  
              </div>
            </div>
          </div>

        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-success waves-effect" data-dismiss="modal" id="save-dosage">Save</button>
        <button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
      </div>

    </div>
    <!-- /.modal-content -->
  </div>
</div>

这是我的 JavaScript 文件:

function addDosage(url){
    console.log(url);

    $.ajax({
        type:'POST',
        url:url,
        data:{
            'medicine_id' : $('select#medicine_id').val(),
            'dosage-volume' : $('#dosage-volume').val(),
            'form'  : $('[name=form]').val(),
            'price' : $('[name=price]').val(),
            'photo' : $('[name=photo]').val()
        },
        success:callback,
        error:err
    })

}


function callback(data){
    console.log(data);
}


function err(xhr, reason, ex)
{
    console.log(+xhr.status);
}

这是我的控制器:

 public function storeDosage(ProductsRequest $request){
    $file = $request->file('photo');
    $fileName = uniqid() . $file->getClientOriginalName();

    if(!file_exists('medicine/images')){
      mkdir('medicine/images', 0777, true);
    }
    $file->move('medicine/images', $fileName); 
    if(!file_exists('medicine/images/thumbs')){
      mkdir('medicine/images/thumbs', 0777, true);
    }

    $thumb = Image::make('medicine/images/' .$fileName)->resize(150,150)->save('medicine/images/thumbs/' . $fileName,50);
        //post information to db
    $dosage = $this->dosage;
    $dosage->dosage_name = $request['dosage_name'];
    $dosage->form = $request['form'];
    $dosage->medicine_id = $request['medicine_id'];
    $dosage->price = $request['price'];
    $dosage->save();

    $image = $dosage->photo()->create([
      'dosage_id' => $request->input('id'),
      'file_name' => $fileName,
      'file_size' => $file->getClientSize(),
      'file_mime' => $file->getClientMimeType(),
      'file_path' => 'medicine/images/thumbs'. $fileName,
      'created_by'=> auth()->user()->id,
      ]);
    return redirect()->route('medicineList');

  }

但它返回错误 500。我认为 Ajax 不接受使用 Bootstrap 模式上传文件。


您可以通过 ajax 使用 bootstrap 模式上传文件,如下所示。

在您的表单标签中使用属性 enctype 和表单 html 将如下所示:

 <form enctype="multipart/form-data" id="modal_form_id"  method="POST" >
    <input type="file" name="documents">
 </form>

Js code:

    var postData = new FormData($("#modal_form_id")[0]);

                         $.ajax({
                                 type:'POST',
                                 url:'your-post-url',
                                 processData: false,
                                 contentType: false,
                                 data : postData,
                                 success:function(data){
                                   console.log("File Uploaded");
                                 }

                              });

在控制器端,您可以执行如下所示的功能来上传图像。

    if(Input::hasFile('documents')) {

        $path = "directory where you wish to upload file";

        $file_name= Input::file('documents');   
        $original_file_name = $file_name->getClientOriginalName();

        $extension       = $file_name->getClientOriginalExtension();
        $fileWithoutExt  = str_replace(".","",basename($original_file_name, $extension));  
        $updated_fileName = $fileWithoutExt."_".rand(0,99).".".$extension; 

        $uploaded = $file_name->move($path, $updated_fileName);

        echo $updated_fileName;

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

使用 Ajax 通过模式上传文件 的相关文章

  • Jquery:选择器找不到类?

    我正在尝试推进 Jquery autcomplete 功能 我希望 Jquery 自动完成在表中创建新行 到目前为止 这有效 但我希望 Jquery 添加一个删除按钮 因此用户可以删除他添加的项目之一 document ready func
  • JavaScript/JQuery:$(window).resize 如何在调整大小完成后触发?

    我这样使用 JQuery window resize function 然而 如果用户通过拖动窗口边缘使其更大 更小来手动调整浏览器窗口的大小 resize上面的事件会多次触发 问题 如何在浏览器窗口调整大小完成后调用函数 以便事件仅触发一
  • Prototype 和 jQuery 一起?

    我注意到我使用的某个脚本依赖于原型 Lightbox 2 它会与 jQuery 在同一页面上一起工作吗 有没有办法确保它们不发生冲突 你可以 但你需要采取特殊步骤 http docs jquery com Using jQuery with
  • 从 thymeleaf 获取数据到模态引导程序、jquery

    我正在尝试获取模态视图的 id 这是为了更新 onclick 元素 但我找不到方法 知道如何为 boostrap 5 完成此操作 或我可以用其他方法吗 谢谢 tr a inactivate a div class modal fade mo
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 简单模式对话框中链接的 Tab 键顺序

    我正在使用优秀的 jquery simplemodal 对话框插件来显示项目列表 这些项目包含超链接 除了模式对话框中的链接不会作为选项卡顺序的一部分出现之外 一切都很好 我尝试显式设置 tabindex 但由于某种原因 只有输入元素按 T
  • Jquery 组合 SlideUp/Down 并单击

    我创建了两个脚本 其中一个具有向上滑动和向下滑动命令 这些命令在页面加载时作用于计时器 第二个是单击事件 其中单击链接时执行向上 向下滑动命令 这两个脚本都是单独工作的 但我无法让它们一起工作 这是定时向上 向下滑动脚本 document
  • 使用模数按字母顺序对列表进行排序

    我在获取元素列表并按字母顺序对它们进行排序方面没有任何问题 但我很难理解如何使用模数来做到这一点 更新 这是按我的方式工作的代码 但是 我更喜欢下面提供的答案的可重用性 因此接受了该答案
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • ajax推送服务器

    好吧 我最近写了一个ajax推送脚本 其中后端的php在等待某人更新时处于休眠状态 但是休眠的进程占用了大量的cpu 关于如何防止这种情况的任何想法 我猜我必须要么找到一个可以使用线程休眠的程序 要么用我不太熟悉的 python 或 c 编
  • jQuery 可以在用户输入数字时添加逗号吗?

    当用户输入数字时 如何动态添加逗号 有没有一个好的数字格式化程序可以提供帮助 我必须稍后添加这些数字 所以我最终必须删除一行中的逗号 但屏幕需要显示逗号以提高可读性 运行代码片段以查看其工作情况 input number keyup fun
  • 文件上传控件 OnChange 事件 JQuery

    我正在尝试使用 AJAX JQUERY 和 Net HTTPHandler 构建页面来上传文件 如下所示http dotnet dzone com news async file upload jquery and http dotnet
  • 如何以编程方式处理 JqGrid 事件?

    我正在使用JqG rid 的 ASP NET 包装器 http www trirand net demoaspnet aspx 我想以编程方式连接一些网格的处理程序events http www trirand com jqgridwiki
  • jquery.validate 中是否有一个函数可以像重置表单一样重置单个字段?

    我想调用 jquery 函数来手动删除单个字段中的错误并重置错误标记 是否有一个函数可以执行此操作 类似于 resetForm 函数 您可以执行以下操作来验证单个字段 your field valid 也许它会对某人有所帮助 Thanks
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 如何使用 JQuery 动态排序

    如果我有一个下拉列表和一个列表框 有没有办法使用 JQuery 根据下拉列表对列表框进行排序 举个例子会很有帮助 这会改变下拉菜单中的顺序 您必须根据自己的标准设置顺序
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array

随机推荐

  • 如何将 DesignInstance 与 Caliburn.Micro 结合使用

    我正在使用 Caliburn Micro 我有这个 WPF 视图 在设计时在名字等基本属性上成功使用示例数据 但找不到复杂类型的属性和集合的视图
  • 发布版本中未触发命令

    我的主页上有一个按钮可以导航到下一个视图 这在我的 Windows PC Visual Studio 2017 上的模拟 Android 设备 Android 8 1 加速 x86 上的调试构建中非常有效 从我的角度来看 该按钮绑定到我的视
  • 如何在 CakePHP 中使用 cookie 进行身份验证?

    我正在尝试使用我的域中其他页面设置的 cookie 来验证用户身份 假设我使用 cakephp 编写了 needpassword example com cookie 是由 auth example com 生成的 使用 Perl CGI
  • 使用循环运行 Gulp 任务

    我的 Gulp 任务有问题 我使用一个任务来创建多个带有 gulp mustache 的 html 文件 这样我最后就有两个文件 index de html 和 index en html 我有一个 json 文件 其中包含字符串 一切都很
  • 如何在 gnuplot 创建的 png 文件中添加希腊字符

    我使用的是 FreeBSD 系统的商业服务器 没有 root 帐户 我用我的帐户安装 gnuplot 但是 我无法设置字体 因此 我将字体文件复制到我的主目录中 例如 usr fonts 然后 我在 gnuplot 文件中使用以下脚本 se
  • 刷新J表

    我有一个从 Vector 创建的 JTable 如何刷新 JTable 以显示添加到 Vector 的新数据 当 TableModel 发生更改时 您的 JTable 应该自动更新 我在这里迈出了一步 但我猜测您没有使用自己的 TableM
  • UML 共享聚合是否意味着不存在循环?

    In short 共享聚合似乎只表达了一种简单的关联 它显然是一个 建模安慰剂 没有客观理由使用它 除非在建模者就特定附加语义达成一致的特定上下文中 然而 一些消息来源声称共享聚合将意味着实例聚合图中不存在循环 这将使聚合成为图建模领域的强
  • C#.NET WebService 返回对象

    我正在使用 ASP NET C 创建 Web 服务 我从网络服务发送各种数据类型 因此我使用以下结构 public enum WS ServiceResponseResult Success Failure public class WS
  • Java内存:Runtime.getRuntime().maxMemory()

    Runtime getRuntime maxMemory 显示哪个内存 是幸存者 伊甸园 旧的 永久的吗 它是堆的最大大小 它松散地基于 mx or Xmx命令行参数 但由于我不明白的原因 可以减少 1 5 它似乎并不完全相同 这不包括永久
  • 为什么我的函数在输入值大小中使用 Python 时间限制?

    我正在尝试创建一个测试命令的函数time在Python中 该函数应该采取m n作为参数并计算MODEXP a e p 其中 p 最多是素数生成器2 m第一种情况下的 e 是2 n在第二种情况下是2 n 1 a是小于p的随机正整数 这是我的代
  • 如何从u-boot启动Linux内核?

    我的 Linux 内核镜像uImage在我的U盘里 我想从 U Boot 启动它 还有设备树文件am335x evm dtb在我的U盘里 我所做的如下 U Boot usb start Re start USB USB0 scanning
  • Android - 蓝牙低功耗远程键盘和鼠标

    计划开发一款 Android 应用程序 允许用户通过蓝牙远程控制键盘和鼠标 我见过一些利用用户家庭网络的应用程序 但想了解一些蓝牙结构 这也将是我在 Android 中的第一个项目之一 并将帮助我学习使用 Android SDK 使用低功耗
  • 仅有时显示远程图像

    我维护一个本地 Intranet 站点 其中显示来自 IMDB com 的电影海报图像 直到最近 我只是让一个 perl 脚本下载我需要的图像并将它们保存到本地服务器 但这变成了一个巨大的空间占用 所以我想我可以简单地将我的网站直接指向 I
  • 让其他应用播放背景音乐

    我想添加其他应用程序 例如 Pandora 或 iTunes 的功能 以便在我的 Sprite Kit 游戏打开时继续播放音乐 我该怎么做呢 对于这个问题的宽泛性 我深表歉意 我只是找不到关于此的很多信息 设置你的AVAudioSessio
  • mysql 错误:超出每小时最大连接数

    我在同一域上为 WordPress 网站运行 php 脚本时遇到错误 Could not connect User abc has exceeded the max connections per hour resource current
  • pgAdmin:如何在输出中查看单元格中的完整值

    我有一个查询 它给我输出单元格中的大输出值 但问题是 为了阅读 我需要拖动列并查看值 在一定范围后 值不会显示 而是显示给我 复制该值后 我也无法获取整组值 Question 如何从输出中看到整组值 选项中有一个设置 Max charact
  • 我什么时候应该使用准备好的语句?

    本来我用的是mysql connect and mysql query做事 然后我学习了SQL注入 所以我正在尝试学习如何使用准备好的语句 我了解 PDO 类的准备和执行函数如何有助于防止 SQL 注入 仅当用户输入存储到数据库中时才需要准
  • 在最新的 Ember.js 构建中的 Ember.View 中定义应用程序模板

    我最近升级到了最新的 Ember js 版本 从 GitHub 页面构建 当使用新路由器时 此功能不再起作用吗 App ApplicationView Ember View extend template Ember Handlebars
  • Celery 和 Django - 没有名为“django”的模块

    我使用描述的说明here Python 2 7 和 Celery 3 1 17 在 celery py 中我有 一开始 from future import absolute import import os from celery imp
  • 使用 Ajax 通过模式上传文件

    我想使用 Ajax 通过模式上传文件 我怎样才能做到这一点 我的模式 div class modal fade in div class modal dialog div class modal content div class moda