一个按钮完成前台上传文件操作

我们都知道,前台选择文件,只能通过input的file类型的文件选择框操作。但有时却为了界面的美观,要求用按钮来完成。

第一步、隐藏文件选择框

第二步、设置按钮事件onclick,触发文件选择框事件

            第三步、选择文件后自动上传,触发文件选择时事件onchange

第四步,使用插件上传,插件有很多,大家可以网上找,我这边用的是jquery.form.js插件(http://plugins.jquery.com/form/


<form id="signupListImportForm" class="import-file-form" enctype="multipart/form-data">  
    <input type="file" name="excelFile" id="excelFile" style="display:none" multiple="multiple" οnchange="fileUpload()">  //multiple属性为多文件上传
    <input class="btn-dr" type="button" value="导入" οnclick="selectFile()">  
</form>

//打开文件选择框
    function selectFile(){
         $("#excelFile").trigger("click");
    }

//文件上传
function fileUpload(){
    var option = {
        url : "analyzeXml",//这里写你的url
        type : 'POST',
        datatype:'json',//这里是返回类型,一般是json,text
        clearForm: true,//提交后是否清空
        success : function(map) {
         alert("上传"+map.message+"!");
        } ,
        error:function(data){
         alert("页面请求失败!");
        }
    };
    $("#signupListImportForm").ajaxSubmit(option);
    return false;
}

关于后台上传文件部分,可以看看http://blog.csdn.net/wdehxiang/article/details/77619677
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您好!针对您的问题,我可以给出以下回答: 如果您需要将影像以base64的形式传到前台,可以在后台将影像转换为base64编码,然后将编码作为响应数据返回给前端。在前端,您可以使用Element UI提供的图片预览组件el-image-preview来查看影像。 下面是一个示例代码,演示了如何在后台将影像转换为base64编码,并将编码作为响应数据返回给前端: ```javascript // 后台代码(Node.js) const fs = require('fs') const path = require('path') const express = require('express') const app = express() // 定义路由,将影像转换为base64编码并返回给前端 app.get('/api/image', (req, res) => { const imagePath = path.join(__dirname, 'image.jpg') const imageBuffer = fs.readFileSync(imagePath) const imageBase64 = imageBuffer.toString('base64') res.send({ image: imageBase64 }) }) // 启动服务器 const port = 3000 app.listen(port, () => { console.log(`Server started on http://localhost:${port}`) }) ``` 在上面的示例代码中,我们定义了一个路由/api/image,该路由会将image.jpg文件读取为buffer,然后将buffer转换为base64编码,并将编码作为响应数据返回给前端。 下面是一个示例代码,演示了如何在前端使用el-image-preview组件来查看影像: ```html <!-- 前端代码 --> <template> <div> <el-image-preview :visible.sync="dialogVisible" :url="imageSrc"></el-image-preview> <el-button @click="openDialog">查看影像</el-button> </div> </template> <script> export default { data() { return { dialogVisible: false, imageSrc: '' } }, methods: { openDialog() { // 发送请求,获取影像的base64编码 fetch('/api/image') .then(response => response.json()) .then(data => { // 将编码转换为data URL格式 const dataUrl = `data:image/jpeg;base64,${data.image}` this.imageSrc = dataUrl this.dialogVisible = true }) } } } </script> ``` 在上面的示例代码中,我们定义了一个el-button按钮,点击该按钮会向后台发送请求,获取影像的base64编码。在获取到编码之后,我们将编码转换为data URL格式,并将其赋值给imageSrc属性,然后打开el-image-preview组件来查看影像。 希望以上回答能够帮助到您!如果您还有其他问题,可以继续向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值