javaweb bootstrap fileinput 图片上传

本文介绍了一个基于Spring MVC的图片上传示例,展示了如何使用Bootstrap FileInput插件进行前端交互,并提供了完整的Java控制器代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可参考内容 Bootstrap fileinput的图片上传 java框架基于springMVC:http://blog.csdn.net/java_chaozi/article/details/53311483

直接上代码:

package com.wangzhixuan.controller;

import org.apache.commons.io.FilenameUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;

@Controller
public class UpdatePhonoController {


    @RequestMapping("/admin/uplode/photo")
    @ResponseBody
    public Map<String, Object> updatePhoto(HttpServletRequest request, HttpServletResponse response, @RequestParam("myFile") MultipartFile myFile) {
        Map<String, Object> json = new HashMap<String, Object>();
        try {
            //输出文件后缀名称
            System.out.println(myFile.getOriginalFilename());
            DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            //图片名称
            String name = df.format(new Date());

            Random r = new Random();
            for (int i = 0; i < 3; i++) {
                name += r.nextInt(10);
            }
            //
            String ext = FilenameUtils.getExtension(myFile.getOriginalFilename());
            //保存图片       File位置 (全路径)   /upload/fileName.jpg
            String url = request.getSession().getServletContext().getRealPath("/static/img/upload/phono/");
            //相对路径
            String path = "/" + name + "." + ext;
            File file = new File(url);
            if (!file.exists()) {
                file.mkdirs();
            }
            myFile.transferTo(new File(url + path));
            json.put("success", "/static/img/upload/phono/" + path);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return json;

    }
}

controller:

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@ include file="/commons/global.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <%@ include file="/commons/basejs.jsp" %>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>


    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>boostrap可拖动文件批量上传代码 - 代码笔记</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="${staticPath }/static/tttq/bootstrapUpload/css/default.css">
    <link href="${staticPath }/static/tttq/bootstrapUpload/css/fileinput.css" media="all" rel="stylesheet" type="text/css" />
    <!--[if IE]>
    <script src="http://libs.useso.com/js/html5shiv/3.7/html5shiv.min.js"></script>
    <![endif]-->
    <%--<script type="text/javascript">--%>
        <%--$(function(){--%>
            <%--alert(111111)--%>
        <%--})--%>
        <%--jQuery(document).ready(function(){--%>
            <%--alert(22222222)--%>

        <%--});--%>
        <%--function change() {--%>
            <%--$("#h22").text('2222222222');--%>
        <%--}--%>
    <%--</script>--%>
</head>
<body>
<div class="htmleaf-container">

    <div class="container kv-main">

        <form enctype="multipart/form-data">

            <div class="form-group">
                <input id="file-5"  name="myFile" class="file" type="file" multiple data-preview-file-type="any" data-upload-url="/admin/uplode/photo" data-preview-file-icon="">

            </div>
        </form>
    </div>

</div>

<script src="${staticPath }/static/tttq/bootstrapUpload/js/jquery.min.js"></script>
<script src="${staticPath }/static/tttq/bootstrapUpload/js/fileinput.js" type="text/javascript"></script>
<script src="${staticPath }/static/tttq/bootstrapUpload/js/fileinput_locale_zh.js" type="text/javascript"></script>
<script src="${staticPath }/static/tttq/bootstrapUpload/js/bootstrap.min.js" type="text/javascript"></script>
<script>
    $("#file-0").fileinput({
        'allowedFileExtensions' : ['jpg', 'png','gif'],
    });
    $("#file-1").fileinput({
        uploadUrl: '#', // you must set a valid URL here else you will get an error
        allowedFileExtensions : ['jpg', 'png','gif'],
        overwriteInitial: false,
        maxFileSize: 1000,
        maxFilesNum: 10,
        //allowedFileTypes: ['image', 'video', 'flash'],
        slugCallback: function(filename) {
            return filename.replace('(', '_').replace(']', '_');
        }
    });
    /*
     $(".file").on('fileselect', function(event, n, l) {
     alert('File Selected. Name: ' + l + ', Num: ' + n);
     });
     */
    $("#file-3").fileinput({
        showUpload: false,
        showCaption: false,
        browseClass: "btn btn-primary btn-lg",
        fileType: "any",
        previewFileIcon: "<i class='glyphicon glyphicon-king'></i>"
    });
    $("#file-4").fileinput({
        uploadExtraData: {kvId: '10'}
    });
    $(".btn-warning").on('click', function() {
        if ($('#file-4').attr('disabled')) {
            $('#file-4').fileinput('enable');
        } else {
            $('#file-4').fileinput('disable');
        }
    });
    $(".btn-info").on('click', function() {
        $('#file-4').fileinput('refresh', {previewClass:'bg-info'});
    });
    /*
     $('#file-4').on('fileselectnone', function() {
     alert('Huh! You selected no files.');
     });
     $('#file-4').on('filebrowse', function() {
     alert('File browse clicked for #file-4');
     });
     */
    $(document).ready(function() {
        $("#test-upload").fileinput({
            'showPreview' : false,
            'allowedFileExtensions' : ['jpg', 'png','gif'],
            'elErrorContainer': '#errorBlock'
        });
        /*
         $("#test-upload").on('fileloaded', function(event, file, previewId, index) {
         alert('i = ' + index + ', id = ' + previewId + ', file = ' + file.name);
         });
         */
    });
</script>

</body>
</html>

直接在Tomcat服务器上就可以到看到图片了
js文件可以到百度云盘中去下载:
https://pan.baidu.com/s/1eRGFAoi 密码:gl4f

### 解决方案 在 Android Studio 中遇到 Gradle 无法找到 Java 的问题可能由多种原因引起。以下是可能导致该问题的原因以及解决方案: #### 1. **Gradle 版本过低** 如果使用的 Gradle 版本低于推荐版本,则可能会导致兼容性问题。建议升级 Gradle Wrapper 到最新稳定版或至少满足工具链的要求[^2]。 可以通过修改 `gradle/wrapper/gradle-wrapper.properties` 文件中的分布 URL 来完成升级: ```properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip ``` #### 2. **Java 开发环境未正确配置** 确保 JDK 已安装并被 Android Studio 正确识别。可以在 Android Studio 设置中验证 JDK 路径是否正确: - 打开菜单路径:`File -> Project Structure -> SDK Location` - 确认 JDK 地址指向有效的 JDK 安装目录。 此外,也可以通过命令行确认 JAVA_HOME 是否已设置: ```bash echo $JAVA_HOME ``` 如果没有设置或者不正确,请手动指定正确的 JDK 路径[^4]。 #### 3. **Maven 和 JAR 包缺失** 某些情况下,项目所需的 Maven 库文件(如 jaxb-impl)可能未能下载成功。可以尝试清理缓存并重新同步 Gradle: - 清理构建缓存:`Build -> Clean Project` - 强制刷新依赖项:`File -> Invalidate Caches / Restart...` 如果仍然找不到特定库文件,可考虑更换国内镜像源以加速下载速度[^5]: ```groovy repositories { mavenCentral() google() maven { url 'https://maven.aliyun.com/repository/google' } } ``` #### 4. **MinSdkVersion 配置错误** 当 minSdkVersion 参数丢失或配置不当也会引发类似的异常提示。需检查 `android/app/build.gradle` 文件内的默认配置部分是否存在遗漏[^3]: ```groovy android { defaultConfig { applicationId "com.example.myapp" minSdkVersion 21 targetSdkVersion 30 versionCode 1 versionName "1.0" } } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值