nodejs+express+ajax实现图片上传及显示

图片上传:

页面ajax写法  

        var data = new FormData();
	   var files = $("#idFile")[0].files;
        if(files){
        	data.append("file", files[0]);
	        data.append("CompanyPicAddress","");
	        data.append("CompanyNameCN",$('#CompanyNameCN').textbox("getValue"));
	        data.append("CompanyNameEN",$('#CompanyNameEN').textbox("getValue"));
	    }
        $.ajax({
        	type: 'post',
        	dataType: 'json',
        	url:'...',
        	data : data,
        	contentType: false,
        	processData: false,
        	success : function (data, textStatus){  		
        	},
        	error:function(XMLHttpRequest, textStatus, errorThrown){
        		
        	}
        });

后台存储:

        var fs = require('fs');
	var formidable = require("formidable");
	var form = new formidable.IncomingForm();
	form.uploadDir = global.yjGlobal.config.routeDirs[2].rootDir+"\\client\\companyPic\\";	
	form.parse(sender.req, function(error, fields, files){
	    var fName = (new Date()).getTime();
            var file = files.file<span style="font-family: Arial, Helvetica, sans-serif;">; //只上传一张图片          </span>
            switch (file.type){
                case "image/jpeg":
                    fName = fName + ".jpg";
                    break;
                case "image/png":
                    fName = fName + ".png";
                    break;
                default :
                    fName =fName + ".png";
                    break;
            }                       
            var uploadDir = "\\client\\companyPic\\" + fName; 
            sender.req.query=fields;
            sender.req.query.CompanyPicAddress="\\companyPic\\" + fName;          
             try{
		fs.renameSync(file.path, uploadDir);
		}catch(e){
	         console.log(e);
            }
        });
   需要注意的是from.uploadDir和uploadDir地址的赋值

   1.保证目录一定存在。如果form.uploadDir不赋值,它默认的位置是C:\User\用户名\AppData\Local\Temp,一般都是将文件存储到指定位置,故这个地址是要改的

   2.目录一致。rom.uploadDir和uploadDir目录一致。

页面实现:

    $("#preview")[0].src=“...”//通过URL,根据自己情况直接读取地址




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值