公司引进高拍仪,想拍完照片点上传按钮直接上传图片。高拍仪接口能提供照片的本地路径,现在的问题是不用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)

加载图片

自动加载本地目录

<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高拍仪图片上传相关推荐

  1. 方正高拍仪文件上传到服务器,高拍仪拍摄文件后如何进行文字识别?本地文件能否导入高拍仪进行识别?...

    原标题:高拍仪拍摄文件后如何进行文字识别?本地文件能否导入高拍仪进行识别? 日常办公和学习中,常常有许多资料需要进行二次编辑,但受限于文件是纸质文档或者图片文件,无法直接进行二次编辑,只能把相关信息手 ...

  2. 详细阐述Web开发中的图片上传问题

    Web开发中,图片上传是一种极其常见的功能.但是呢,每次做上传,都花费了不少时间. 一个"小功能"花费我这么多时间,真心不愉快. So,要得认真分析下原因. 1.在最初学习Java ...

  3. 企业WEB项目商品管理图片上传

    文章目录 一.商品基本信息录入 1.电商概念SPU与SKU 2.商品分类 2.1需求分析 2.2前端 3.商品介绍 3.1富文本编辑器介绍 3.2使用kindeditor 4.选择商品分类 4.1一级 ...

  4. 串口屏应用案例_大彩串口屏在高拍仪上的应用方案

    一.概况 高拍仪也有人称为速拍仪,或有的教育机构称之为备课王.一般来说,我们称之为高拍仪.是最新研发出来的一款超便携低碳办公用品,也是一款办公领域革新性产品,它具有折叠式的超便捷设计,能完成一秒钟高速 ...

  5. 思源高拍仪万能驱动_动态展示和教学 良田YL1050AF高拍仪评测

    高拍仪的一大特点就是灵活多样,通过不同的工业设计用于文件扫描.视频展示.多媒体教学.信息采集.体温监测等等.良田最新款YL1050AF教学高拍仪通过巧妙的设计和专业的软件,为教学.培训.实时展示等应用 ...

  6. 06_04_任务一:拉勾教育后台管理系统[课程管理模块、图片上传、 BeanUtils封装实体类](SSM)

    拉勾教育后台管理系统(SSM) 1. 项目架构 1.1 项目介绍 ​ 拉勾教育后台管理系统,是提供给拉勾教育的相关业务人员使用的一个后台管理系统, 业务人员可以在 这个后台管理系统中,对课程信息.广告 ...

  7. 在网页中调用摄像头实现拍照上传 - 高拍仪二次开发

    在网页中调用摄像头实现拍照上传 高拍仪二次开发     在一些公共部门的办事处,比如银行.护照办理中心.税务等,我们可能会注意到办公桌上摆着这样一台机器.办公人员用它拍摄各种证件.文件.表格,有时候还 ...

  8. c++ 二次开发 良田高拍仪_在网页中调用摄像头实现拍照上传 - 高拍仪二次开发...

    来源于  https://blog.csdn.net/weixin_40659738/article/details/78252562 在网页中调用摄像头实现拍照上传 高拍仪二次开发 在一些公共部门的 ...

  9. web端 刷卡器_web工程集成身份证读卡器,高拍仪

    接到个模块,要在已有的web工程里集成身份证读卡器,高拍仪等硬件.一时摸不着头脑,网上搜了下,发现都写的高端到看不懂.后来找了个已成功集成的web工程研究了下,发现弱爆了.这种硬件设备都已经做好了对w ...

  10. web.py做图片上传网页

    简单而直接的Python web 框架:web.py 网页界面属于前端,可以用html HTML5 上传图片文件(含拖拽.预览.上传.美化) HTML 入门笔记 - 初识HTML 如何实现一个简易的图 ...

最新文章

  1. 【TX2】英伟达Nvidia TX2连接蓝牙设备
  2. 谷歌AutoML鼻祖Quoc Le新作AutoML-Zero:从零开始构建机器学习算法
  3. 批量增加文件夹C语言实现
  4. matlab clabel函数用法,CLabel函数说明
  5. 《操作系统》实验报告——熟悉Linux基础命令及进程管理
  6. 连贯的学习黑树(插入节点)
  7. iOS手势操作简介(三)
  8. wxpython的sizer_wxPython BoxSizer布局
  9. Memcahce(MC)系列(三)Memcached它PHP转让
  10. 小米MIX 4真机亮屏照曝光?真全面屏 边框窄到窒息
  11. java做登录时要加锁吗_你用对锁了吗?谈谈 Java “锁” 事
  12. CondaHTTPError: HTTP 000 CONNECTION FAILED for url ...... 解决过程
  13. 肯德尔系数怎么分析_2020LPL春季赛3月15日比赛数据的数据分析(Python)
  14. 机器学习-分类Classification
  15. 前端 实现 直角三角形 边长、角度计算工具
  16. 是潜意识音频优于催眠
  17. apple tv 开发_如何将蓝牙耳机连接到Apple TV
  18. 空气质量预报模式系统(CMAQ)
  19. 人工智能研究生新动向!教育部明确五大培养方向!
  20. C/C++ 使用信号量控制线程运行顺序

热门文章

  1. 黑客6种方法入侵你的计算机系统
  2. 风投围猎移动互联网:初现估值泡沫与马太效应
  3. IMDB TOP250电影介绍(下)
  4. 组件上传之AspUpload使用方法
  5. SecureCRT配置自动保存日志(实用)
  6. 利用windrose绘制风玫瑰图并解决错误问题
  7. 蓝芯保护卡_蓝芯防毒卡无忧版
  8. win10任务栏透明_5 款 Windows 任务栏增强工具推荐
  9. 软件开发工具【十四】 之 常用建模工具
  10. 激光投影仪对比激光电视 成像原理和适用范围