http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 7813|回复: 0

[HttpHelper] C#winform客户端模拟表单post上传文件,java服务器端接收。

[复制链接]
发表于 2014-11-13 11:33:19 | 显示全部楼层 |阅读模式
1金钱
现在可以用HTML提交表单上传文件到java服务器端。但是用C#不太会。请各位大大指教。
应该是用到httpwebrequest类,然后把文件读成二进制流传到java服务端,服务端像接收表单那样接收流。
现在的问题:
1.如何模拟表单
2.如何转换成二进制流
3.如何传文件以及参数ip

最好能给一点详细的代码。

HTML的代码:
[HTML] 纯文本查看 复制代码
<html>
<body>
   <form action="http://localhost:8080/radionav/monit/upload" method="post"  enctype="multipart/form-data">
    <input type="text" name="ip"/><br>
    <input type="file" name="file"/><br>
	<input type="submit" value="upload"/>
    <a >down</a>
  </form>
</body>
</html>


JAVA服务端的代码:
[Java] 纯文本查看 复制代码
	/**
	 * 上传图片
	 * @param ip
	 * @param filename
	 * @return
	 */	
	@RequestMapping(value="upload",method=RequestMethod.POST)
	@ResponseBody
	public String upload( @RequestParam("ip") String ip,
			@RequestParam("file") MultipartFile file){

		logger.info("file name " + file.getOriginalFilename());
		screenShotService.upload(ip, file);
		return "success";
	}

/**
     * 上传截屏
     * 
     * 逻辑:
     * 1,把文件转移到存储目录
     * 2,生成screenshot对象保存起来
     * @param ip 
     * @param filename
     */
    public ScreenShot upload(String ip, MultipartFile file)
    {
        
        try {
            String localPath = receiveFile(file);
            String channel = "testChannel";
            String user = "testUser";     

            if (StringUtils.isNotBlank(localPath)){
                //创建对象
                ScreenShot ss = new ScreenShot(file.getOriginalFilename(),ip,user,channel,localPath);
                //保存到数据库
                ss = screenShotRepository.save(ss);
                return ss;
            }
            
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    
    private String receiveFile(MultipartFile file) throws IOException {
        String path;        
        //destPath为存储文件的目录地址,目录下文件夹和文件取名由ileUtil.buildNewFileName()完成
        String destPath = FileUtil.buildNewFileName(configService.getUploadRootPath() + Const._SPLASH, file.getOriginalFilename());
        logger.info("upload file Path is " + file.getOriginalFilename() 
                + " dest file name is " + destPath);
        //新建一个名为dest的空文件
        File dest = new File(destPath);
        //把file放到dest的path
        file.transferTo(dest);
        path = dest.getPath();
        return path;
    }


    public ScreenShot findById(String id) {
        return this.screenShotRepository.findOne(id);
    }








1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-14 08:17

© 2014-2021

快速回复 返回顶部 返回列表