web高拍仪图片上传

摘要:
该公司推出了一款高速摄像头,并希望在拍照后点击上传按钮直接上传照片。相机接口可以提供照片的本地路径。现在的问题是没有可选择的文件控件,只有路径。我不知道如何上传到服务器并找到解决方案。方法:使用ZeyouWeb图像上传控件帮助解决手动上传图像的问题。使用img2后,可以自动上传本地路径下的图像,无需用户手动选择图像。

公司引进高拍仪,想拍完照片点上传按钮直接上传图片。高拍仪接口能提供照片的本地路径,现在的问题是不用file控件选择,只有路径,不知道如何上传到服务器,求解决方案。

 

方法:

使用泽优Web图片上传控件(img2)帮助解决图片手动上传的问题,使用img2后可以自动上传本地路径下面的图片,不需要用户再手动选择图片。

 

优势:

1.不需要通过AJAX上传BASE64,直接上传本地图片文件数据。

2.AJAX上传BASE64存在跨域问题,img2不存在跨域问题,可以灵活指定文件存储服务器。或者采用分布式存储方式。

 

原理

1.img2提供了接口addFile和addFolder,可以直接加载本地路径下面的图片或目录。

2.添加后可以调用post方法开始上传图片。

3.不需要开发人员编写上传代码,img2提供了asp,jsp,php,asp.net常用语言的上传代码,下载即用,整合方便,代码清晰简单。

 

泽优Web图片上传控件(img2)

web高拍仪图片上传第1张

 

加载图片

web高拍仪图片上传第2张

 

自动加载本地目录

    <scripttype="text/javascript">

        var imgUp = new ImageUploader();

        imgUp.LoadTo("img-uper");

        imgUp.ent.loadCmp = function () {

            setTimeout(function () {

                imgUp.addFolder("F:\ftp");//自动加载本地目录下的所有图片

            }, 1000);

        };

    </script>

 

自动加载本地路径下的图片文件

    <scripttype="text/javascript">

        var imgUp = new ImageUploader();

        imgUp.LoadTo("img-uper");

        imgUp.ent.loadCmp = function () {

            setTimeout(function () {

                imgUp.addFile("F:\ftp\test.jpg");//

            }, 1000);

        };

    </script>

 

服务端jsp上传代码

    publicvoid SaveFile(FileItem upFile) throws IOException

    {

        String fileName = upFile.getName();

        //如果控件是以UTF-8编码方式提交的数据则使用下面的方式对文件名称进行解码。

        fileName = fileName.replaceAll("\+","%20");

        //客户端使用的是encodeURIComponent编码

        fileName = URLDecoder.decode(fileName,"UTF-8");

        this.m_fileName = fileName;

       

        this.CreateFolder();

        String filePath = this.m_folder + this.m_fileName;     

 

        InputStream stream = upFile.getInputStream();          

        byte[] data = newbyte[(int)upFile.getSize()];//128k

        stream.read(data);

        stream.close();

       

        RandomAccessFile raf = newRandomAccessFile(filePath,"rw");

        //定位文件位置

        raf.write(data);

        raf.close();

    }

 

asp.net文件上传代码

using System;

using System.Web;

using System.IO;

 

namespace WebApplication1

{

    publicpartialclassupload : System.Web.UI.Page

    {

        protectedvoid Page_Load(object sender, EventArgs e)

        {

            var remark = HttpUtility.UrlDecode(remark);

 

            if (Request.Files.Count > 0)

            {

                string folder = Server.MapPath("/upload");

                //自动创建上传文件夹

                if (!Directory.Exists(folder))

                {

                    Directory.CreateDirectory(folder);

                }

 

                HttpPostedFile file = Request.Files.Get(0);

                //utf-8编码时需要进行urldecode

                string fn = HttpUtility.UrlDecode(file.FileName);//guid,crc,md5,ori

                System.Diagnostics.Debug.WriteLine(fn);

 

                string ext = Path.GetExtension(fn).ToLower();

                if (ext == ".jpg"

                    || ext == ".gif"

                    || ext == ".png"

                    || ext == ".bmp"

                    || ext == ".tif")

                {

                    string filePath = Path.Combine(folder, fn);

                    file.SaveAs(filePath);

 

                    //返回json格式

                    string res = "{"id":""+id+"","success":1,"url":"/upload/"+fn+""}";

                    Response.Write(res);

                }

            }

        }

    }

}

 

php文件上传代码

<?php

ob_start();

//201201/10

$timeDir = date("Ym")."/".date("d");

$pathSvr = dirname(__FILE__)."/upload/$timeDir/";

$curDomain = "http://".$_SERVER["HTTP_HOST"];

//相对路径 http://www.ncmem.com/upload/2012-1-10/

$pathRel = "$curDomain/img/upload/$timeDir/";

 

//自动创建目录。upload/2012-1-10

if(!is_dir($pathSvr))

{

    mkdir($pathSvr,0777,true);

}

 

//如果PHP页面为UTF-8编码,请使用urldecode解码文件名称

//$fileName = urldecode($_FILES['img']['name']);

//如果PHP页面为GB2312编码,则可直接读取文件名称

$nameSvr  = $_FILES['img']['name'];

$nameSvr  = urldecode($nameSvr);

$tmpName  = $_FILES['img']['tmp_name'];

//$uid      = $_POST["UserID"];

$id       = $_POST["id"];

$width    = $_POST["width"];

$height   = $_POST["height"];

$remark   = $_POST["remark"];//utf-8则需要进行URL解码,gbk不用解码

$cateName = $_POST["cname"];

$cateVal  = $_POST["cvalue"];

 

//取文件扩展名jpg,gif,bmp,png

$path_parts = pathinfo($nameSvr);

$ext = $path_parts["extension"];

 

//只允许上传图片类型的文件

if(    0 == strcasecmp($ext,"jpg")

    || 0 == strcasecmp($ext,"jpeg")

    || 0 == strcasecmp($ext,"png")

    || 0 == strcasecmp($ext,"gif")

    || 0 == strcasecmp($ext,"bmp") )

{

    //xxx/2011_05_05_091250000.jpg

    $savePath = $pathSvr . $nameSvr;

 

    //另存为新文件名称

    if (!move_uploaded_file($tmpName,$savePath))

    {

        exit('upload error!' "文件名称:" .$nameSvr . "保存路径:" . $savePath);

    }

}

 

//输出图片路径

//$_SERVER['HTTP_HOST']localhost:81

//$_SERVER['REQUEST_URI'] /FCKEditor2.4.6.1/php/test.php

$reqPath = str_replace("upload.php","",$_SERVER['REQUEST_URI']);

 

$fn = $pathRel.$nameSvr;

$res = "{"id":"$id","success":1,"url":"$fn"}";

echo $res;

header('Content-type: text/html; charset=utf-8');

header('Content-Length: ' . ob_get_length());

 

?>

 

泽优web图片上传控件(img2)采用HTTP协议上传,支持asp,jsp,php,asp.net等任何Web开发语言。且提供js-sdk,能够方便的集成到任何项目中。

详细介绍:http://blog.ncmem.com/wordpress/2019/09/05/泽优web图片上传控件img2产品介绍/

免责声明:文章转载自《web高拍仪图片上传》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇评论功能的简单实现MFC_简易文件管理器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

浅谈大型web系统架构(一)

目录 Web前端系统 负载均衡系统 数据库集群系统 缓存系统 分布式存储系统 分布式服务器管理系统 代码发布系统   动态应用,是相对于网站静态内容而言,是指以c/c++、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可...

使用Gulp构建Web服务器

使用Gulp构建本地开发Web服务器 博客分类:  JavaScript   问题  1. 在写前端界面代码时,想调试的时候需要配置一个Apache或者Nginx服务器 2. 每次修改代码都需要刷新一下,验证效果。 解决方案 Gulp + Gulp-connect +watch + livereload Gulp是目前风头正劲的前端自动化工具,有...

使用RESTful风格开发Java Web

什么是RESTful风格? REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移),REST 是一种体系结构,而 HTTP 是一种包含了 REST 架构属性的协议,为了便于理解,我们把它的首字母拆分成不同的几个部分: 表述性(REpresentational): REST 资源实际上可以用各种形...

Web前端技能

入门必备的技能:第1项技能:HTML超文本标记语言:技能要点:    HTML文件的结构    HTML文件的编写方法     HTML基本标记    文字与段落标记     框架    使用表单     XHTML页面结构  第2项技能:JavaScript脚本技能要点:    JavaScript基本语法    流程控制    函数    对象与数组 ...

wangEditor编辑器的使用

使用场景wangEditor  x-admin前端框架 文档手册地址:https://www.wangeditor.com/ 第一步:在html 页面引入需要的js(最好把这些js 下载下来,本地引入) <script type="text/javascript" src="https://unpkg.com/wangeditor/dist/wang...

java后台中处理图片辅助类汇总(上传图片到服务器,从服务器下载图片保存到本地,缩放图片,copy图片,往图片添加水印图片或者文字,生成二维码,删除图片等)

最近工作中处理小程序宝箱活动,需要java画海报,所以把这块都快百度遍了,记录一下处理的方法,百度博客上面也有不少坑! 获取本地图片路径: String bgPath = Thread.currentThread().getContextClassLoader().getResource("/").getPath().replaceAll("WEB-INF...