ajax异步上传图片

/ajax异步上传图片/
1、java 后台代码

   /**参考https://blog.csdn.net/qq_38762237/article/details/81282444
	 * ajax 上传图片 只支持jdk1.7以上+tomcat8.0
	 * @Description  TODO
	 * @Author panshengwu
	 * @Date 2019年8月25日 下午2:59:01  
	 * @return
	 */
	@RequestMapping(value="/uploadPerInfoImg.do")
	@ResponseBody
	public Map<String, Object>  uploadPerInfoImg(HttpServletRequest req,Personel per,
			@RequestParam(value = "file") MultipartFile file, Model model, 
    		HttpServletRequest request){
		Map<String, Object> map=new HashMap<String, Object>();
		String fileName="";
		//获取工程名(获取绝对位置)
		String conetextPath=request.getSession().getServletContext().getContextPath();
		//上传文件
		if (!file.isEmpty()) {
			    fileName= file.getOriginalFilename();  // 文件名
		        String suffixName = fileName.substring(fileName.lastIndexOf("."));  // 后缀名
		        //String filePath = "D://temp-rainy//"; // 上传后的路径
		        String filePath = request.getSession().getServletContext().getRealPath("/fileStorage/");//文件存放位置
		        fileName = UUID.randomUUID() + suffixName; // 新文件名
		        File dest = new File(filePath+fileName);
		        if (!dest.getParentFile().exists()) {
		            dest.getParentFile().mkdirs();
		        }
		        try {
		            file.transferTo(dest);
		        } catch (IOException e) {
		            e.printStackTrace();
		        }
        }
		String filename ="/fileStorage/" + fileName;
		String filename2 =conetextPath+"/fileStorage/"+ fileName;
		System.out.println("图片上传路径:"+filename2);
		map.put("filename", filename);
		map.put("filename2", filename2);
		return map;
	}

2、 js文件

    /*ajax 上传图片*/
     function uploadPerInfoImg() {
	    var fileUpload=$("#file").val();
        if($("#file").val() != "") {
            $.ajaxFileUpload({
                type: "POST",
                url:"${pageContext.request.contextPath}/uploadPerInfoImg.do",
                dataType: "json",
                fileElementId:"file",  // 文件的id
                success: function(data){
                    if(data.filename!='') {
                        alert("上传成功");
                        //图片显示
                        $("#picture").attr("value",data.filename);
                        $('#avatarShow').attr("src", data.filename2);
                    }
                },
                async:false,//同步
                error: function () {
                    alert("上传失败");
                },
            });
        } else {
            alert("请先选择文件");
        }
    }

3、html文件

<!-- 模态框(Modal) -->
	<div class="modal fade" id="myModal2" 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>
					<h4 class="modal-title" id="myModalLabel">
						user info modify
					</h4>
				</div>
				<input type="file" name="file" id="file" multiple class="file-loading" onchange="uploadPerInfoImg()" />
				<div class="media-right" >
					      <img src="https://static.runoob.com/images/mix/img_avatar.png" class="media-object"
					       id="avatarShow" name="avatarShow"
						   style="width:450px;height:348px;border: 1px solid gray;border-radius:30px;"/>
	            </div>
				<form    class="bs-example bs-example-form" role="form" 
					id="form" name="form"	method="post" action="${pageContext.request.contextPath}/improvePerInfo.do">
					<div class="modal-body">
						<div style="padding: 100px 100px 10px;">
						        <div class="input-group input-group-sm">
					                 <input name="picture" id="picture" type="text" class="form-control" style="">
                                </div>
								<br>
								<div class="input-group input-group-sm">
					            <span class="input-group-addon">@</span>
					                 <input type="text" class="form-control" placeholder="please add your describtion" name="perDes" id="perDes">
                                </div>
						</div>
					</div>
					<div class="modal-footer">
						<button type="button" class="btn btn-default" 
								data-dismiss="modal">close
						</button>
						<input type="submit" class="btn btn-primary"  value="submit" />
					</div>
				</form>
			</div><!-- /.modal-content -->
		</div><!-- /.modal-dialog -->
	</div><!-- /.modal -->

总结:通过ajax 方式 动态绑定下拉选项值,不管是jsp 还是前后端分离的html思路是一样的。
ps:要导入 jquery 文件和bootstrap等必要文件。

     <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
    <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitterbootstrap/3.3.7/css/bootstrap.min.css">
	<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
	<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
	<script src="${pageContext.request.contextPath}/static/js/ajaxfileupload.js"></script>	

效果:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TinyMCE是一个功能强大的富文本编辑器,它能够轻松实现图片的异步上传。要实现这个功能,你可以按照以下步骤进行: 1. 首先,确保你已经在网页中引入了TinyMCE编辑器的库文件。 2. 在页面中创建一个HTML的textarea元素,并将其id设置为"myTextarea"(也可以自定义其他id)。 3. 使用JavaScript代码初始化TinyMCE编辑器,同时配置相应的设置和选项。其中,你需要在设置中添加一个自定义的图片上传回调函数。例如: ```javascript tinymce.init({ selector: '#myTextarea', plugins: 'image', toolbar: 'image', file_picker_callback: function(callback, value, meta) { // 在这里编写图片上传的异步处理逻辑 } }); ``` 4. 在图片上传回调函数中,你可以使用AJAX或其他HTTP请求方法将图片异步上传至服务器。这需要你根据具体的后端语言来处理上传请求并将图片保存到服务器上的指定位置。上传成功后,你需要将图片的URL回传给TinyMCE编辑器,以供其插入到编辑器中。 以下是一个示例的上传回调函数,假设你使用了jQuery库来简化AJAX请求的操作: ```javascript file_picker_callback: function(callback, value, meta) { // 打开一个自定义的图片选择框 // ... // 当用户选择图片后,调用以下回调函数 var fileInput = document.getElementById('fileInput'); // 假设你的图片选择框的id是"fileInput" var file = fileInput.files[0]; // 获取用户选择的图片文件 // 使用AJAX将图片上传至服务器 var formData = new FormData(); formData.append('image', file); $.ajax({ url: 'upload.php', // 上传图片的后端处理脚本 type: 'POST', data: formData, processData: false, contentType: false, success: function(data) { // 上传成功后 var imageUrl = data.imageUrl; // 假设服务器返回的上传成功后的图片URL存在data.imageUrl中 // 将图片URL传递给回调函数,以便TinyMCE插入图片 callback(imageUrl, { alt: '' }); } }); } ``` 使用以上步骤,你就可以在TinyMCE编辑器中实现图片的异步上传。当用户选择图片并上传成功后,图片将被插入到编辑器的当前光标位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值