0

0

javascript - 我把图片上传到服务器,不知道怎么在浏览器访问这张图片

php中文网

php中文网

发布时间:2016-12-01 00:26:00

|

2860人浏览过

|

来源于php中文网

原创

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <title></title>
        <script src="js/mui.min.js"></script>

        <script src="js/jquery1.42.min.js"></script>
        <script type="text/javascript" src="js/mui.min.js"></script>
        <link href="css/mui.min.css" rel="stylesheet" />
        <script type="text/javascript" charset="utf-8">
            mui.init();
        </script>
        <style>
            body {
                font-family: "Helvetica Neue", Helvetica, sans-serif;
                -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
                background: #E6E6E6;
                margin: 0px;
            }
        </style>
        <script type="text/javascript">
            var files = [];
            var i = 1,
                gentry = null,
                w = null;
            var hl = null,
                le = null,
                de = null;

            var f1 = null;
            var f2 = null;

            // 监听DOMContentLoaded事件
            document.addEventListener("DOMContentLoaded", function() {
                // 获取DOM元素对象
                hl = document.getElementById("history");
                le = document.getElementById("empty");

            }, false);

            // 上传文件
            function upload() {

                if(files.length <= 0) {
                    plus.nativeUI.alert("没有添加上传文件!");
                    return;
                }

                if(files.length < 2) {

                    f1 = files[0].pic;
                    f2 = "";
                } else {
                    f1 = files[0].pic;
                    f2 = files[1].pic;
                }
                var wt = plus.nativeUI.showWaiting();
                
                var url = 'http://demo.dcloud.net.cn/helloh5/uploader/upload.php';
                //预期服务器范围的数据类型
                var dataType = 'json';
                //发送数据  
                var data = {
                    files1: f1,
                    files2: f2
                };
                $.post(url, data, success, dataType);
            }
            //成功响应的回调函数
            var success = function(response) {
                plus.nativeUI.closeWaiting();
                if(response != null) {
                    alert("上传成功");
                }

            }

            // 拍照 
            function getImage() {

                var cmr = plus.camera.getCamera();
                cmr.captureImage(function(p) {
                        plus.io.resolveLocalFileSystemURL(p, function(entry) {
                            if(files.length < 2) {
                                createItem(entry);
                                appendFile(p);
                            }
                        });
                    }, function(error) {
                        alert("Capture image failed: " + error.message);
                    }, {
                        filename: "file:///storage/sdcard0/DCIM/Camera/" + "ra/"
                    } //改变一下拍照的路径,名字

                );

            }

            // 从相册添加文件 
            function appendByGallery() {
                plus.gallery.pick(function(path) {
                    plus.io.resolveLocalFileSystemURL(path, function(entry) {
                        if(files.length < 2) {
                            createItem(entry);
                            appendFile(path);
                        }

                    });

                });
            }

            // 添加文件
            var index = 1;

            function appendFile(path) {

                var img = new Image();
                img.src = path;
                img.onload = function() {
                    var that = this;
                    //生成比例 
                    var w = that.width,
                        h = that.height,
                        scale = w / h;
                    w = 50 || w; //480  你想压缩到多大
                    h = w / scale;

                    //生成canvas
                    var canvas = document.createElement('canvas');

                    var ctx = canvas.getContext('2d');

                    $(canvas).attr({
                        width: w,
                        height: h
                    });

                    ctx.drawImage(that, 0, 0, w, h);

                    var base64 = canvas.toDataURL('image/jpeg', 1 || 0.8); //1z 表示图片质量,越低越模糊。
                    //              alert(base64);      

                    files.push({
                        name: "file" + index,
                        pic: base64
                    }); // 把base64数据丢进数组,上传要用。

                    index++;

                    var pic = document.getElementById("x");
                    pic.src = base64; //这里丢到img 的 src 里面就能看到效果了
                }

            }

            // 显示文件
            function displayFile(li) {

                var name = li.entry.name;
                var suffix = name.substr(name.lastIndexOf('.'));
                var url = "";

                url = "examples/camera_image.html";
                //
                w = plus.webview.create(url, url, {
                    scrollIndicator: 'none',
                    scalable: true,
                    bounce: "all"
                });
                w.addEventListener("loaded", function() {

                    w.evalJS("loadMedia('" + li.entry.toLocalURL() + "')");
                    //        //w.evalJS( "loadMedia(\""+"http://localhost:13131/_doc/camera/"+name+"\")" );
                }, false);
                w.addEventListener("close", function() {
                    w = null;
                }, false);
                w.show("slide-in-right", 300);
            }

            // 添加播放项
            function createItem(entry) {
                var li = document.createElement("li");
                li.className = "ditem";
                li.innerHTML = '<span class="iplay"><font class="aname"></font><br/><font class="ainf"></font></span>';
                li.setAttribute("onclick", "displayFile(this);");
                hl.insertBefore(li, le.nextSibling);
                li.querySelector(".aname").innerText = entry.name;
                li.entry = entry;

                // 设置空项不可见
                le.style.display = "none";
            }

            // 清除历史记录
            function cleanHistory() {
                hl.innerHTML = '<li id="empty" class="ditem-empty">暂无照片</li>';
                le = document.getElementById("empty");
                files.splice(0, files.length);

            }
        </script>
    </head>

    <body>
        <div id="dcontent" class="long-dcontent">

            <table class="long-table">
                <tbody>
                    <span style="margin: 0 0 10px 0px;color: #6c6c6c;">照片</span>
                    <tr>
                        <td style="background: #fff;text-align: center;color:#9B9B9B;width:40%">
                            <div class="button button-select pz" onclick="getImage()">@@##@@拍摄照片</div>
                        </td>
                        <td style="width:10%"></td>
                        <td style="background: #fff;text-align: center;color:#9B9B9B;width:40%">
                            <div class="button button-select pz" onclick="appendByGallery()">@@##@@选择照片</div>
                        </td>

                    </tr>

                </tbody>
            </table>
            <p class="heading" style="color: #6c6c6c;">照片预览:</p>
            <div id="history" class="dlist" style="text-align:left;">
                <li id="empty" class="ditem-empty" style="list-style-type:none; ">暂无照片</li>
            </div>
            <br/>
            <div class="b-waring" onclick="cleanHistory();" style="border: 1px solid #999999;margin: 10px;padding:10px 0 ;text-align: center;">清空照片</div>
            <br/>

            <div class="button long-btn" onclick="upload()" style="border: 1px solid #999999;margin: 10px;padding:10px 0 ;text-align: center;">上传</div>
            <br/>

        </div>
        @@##@@
    </body>

</html>

javascript - 我把图片上传到服务器,不知道怎么在浏览器访问这张图片

回复内容:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <title></title>
        <script src="js/mui.min.js"></script>

        <script src="js/jquery1.42.min.js"></script>
        <script type="text/javascript" src="js/mui.min.js"></script>
        <link href="css/mui.min.css" rel="stylesheet" />
        <script type="text/javascript" charset="utf-8">
            mui.init();
        </script>
        <style>
            body {
                font-family: "Helvetica Neue", Helvetica, sans-serif;
                -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
                background: #E6E6E6;
                margin: 0px;
            }
        </style>
        <script type="text/javascript">
            var files = [];
            var i = 1,
                gentry = null,
                w = null;
            var hl = null,
                le = null,
                de = null;

            var f1 = null;
            var f2 = null;

            // 监听DOMContentLoaded事件
            document.addEventListener("DOMContentLoaded", function() {
                // 获取DOM元素对象
                hl = document.getElementById("history");
                le = document.getElementById("empty");

            }, false);

            // 上传文件
            function upload() {

                if(files.length <= 0) {
                    plus.nativeUI.alert("没有添加上传文件!");
                    return;
                }

                if(files.length < 2) {

                    f1 = files[0].pic;
                    f2 = "";
                } else {
                    f1 = files[0].pic;
                    f2 = files[1].pic;
                }
                var wt = plus.nativeUI.showWaiting();
                
                var url = 'http://demo.dcloud.net.cn/helloh5/uploader/upload.php';
                //预期服务器范围的数据类型
                var dataType = 'json';
                //发送数据  
                var data = {
                    files1: f1,
                    files2: f2
                };
                $.post(url, data, success, dataType);
            }
            //成功响应的回调函数
            var success = function(response) {
                plus.nativeUI.closeWaiting();
                if(response != null) {
                    alert("上传成功");
                }

            }

            // 拍照 
            function getImage() {

                var cmr = plus.camera.getCamera();
                cmr.captureImage(function(p) {
                        plus.io.resolveLocalFileSystemURL(p, function(entry) {
                            if(files.length < 2) {
                                createItem(entry);
                                appendFile(p);
                            }
                        });
                    }, function(error) {
                        alert("Capture image failed: " + error.message);
                    }, {
                        filename: "file:///storage/sdcard0/DCIM/Camera/" + "ra/"
                    } //改变一下拍照的路径,名字

                );

            }

            // 从相册添加文件 
            function appendByGallery() {
                plus.gallery.pick(function(path) {
                    plus.io.resolveLocalFileSystemURL(path, function(entry) {
                        if(files.length < 2) {
                            createItem(entry);
                            appendFile(path);
                        }

                    });

                });
            }

            // 添加文件
            var index = 1;

            function appendFile(path) {

                var img = new Image();
                img.src = path;
                img.onload = function() {
                    var that = this;
                    //生成比例 
                    var w = that.width,
                        h = that.height,
                        scale = w / h;
                    w = 50 || w; //480  你想压缩到多大
                    h = w / scale;

                    //生成canvas
                    var canvas = document.createElement('canvas');

                    var ctx = canvas.getContext('2d');

                    $(canvas).attr({
                        width: w,
                        height: h
                    });

                    ctx.drawImage(that, 0, 0, w, h);

                    var base64 = canvas.toDataURL('image/jpeg', 1 || 0.8); //1z 表示图片质量,越低越模糊。
                    //              alert(base64);      

                    files.push({
                        name: "file" + index,
                        pic: base64
                    }); // 把base64数据丢进数组,上传要用。

                    index++;

                    var pic = document.getElementById("x");
                    pic.src = base64; //这里丢到img 的 src 里面就能看到效果了
                }

            }

            // 显示文件
            function displayFile(li) {

                var name = li.entry.name;
                var suffix = name.substr(name.lastIndexOf('.'));
                var url = "";

                url = "examples/camera_image.html";
                //
                w = plus.webview.create(url, url, {
                    scrollIndicator: 'none',
                    scalable: true,
                    bounce: "all"
                });
                w.addEventListener("loaded", function() {

                    w.evalJS("loadMedia('" + li.entry.toLocalURL() + "')");
                    //        //w.evalJS( "loadMedia(\""+"http://localhost:13131/_doc/camera/"+name+"\")" );
                }, false);
                w.addEventListener("close", function() {
                    w = null;
                }, false);
                w.show("slide-in-right", 300);
            }

            // 添加播放项
            function createItem(entry) {
                var li = document.createElement("li");
                li.className = "ditem";
                li.innerHTML = '<span class="iplay"><font class="aname"></font><br/><font class="ainf"></font></span>';
                li.setAttribute("onclick", "displayFile(this);");
                hl.insertBefore(li, le.nextSibling);
                li.querySelector(".aname").innerText = entry.name;
                li.entry = entry;

                // 设置空项不可见
                le.style.display = "none";
            }

            // 清除历史记录
            function cleanHistory() {
                hl.innerHTML = '<li id="empty" class="ditem-empty">暂无照片</li>';
                le = document.getElementById("empty");
                files.splice(0, files.length);

            }
        </script>
    </head>

    <body>
        <div id="dcontent" class="long-dcontent">

            <table class="long-table">
                <tbody>
                    <span style="margin: 0 0 10px 0px;color: #6c6c6c;">照片</span>
                    <tr>
                        <td style="background: #fff;text-align: center;color:#9B9B9B;width:40%">
                            <div class="button button-select pz" onclick="getImage()">@@##@@拍摄照片</div>
                        </td>
                        <td style="width:10%"></td>
                        <td style="background: #fff;text-align: center;color:#9B9B9B;width:40%">
                            <div class="button button-select pz" onclick="appendByGallery()">@@##@@选择照片</div>
                        </td>

                    </tr>

                </tbody>
            </table>
            <p class="heading" style="color: #6c6c6c;">照片预览:</p>
            <div id="history" class="dlist" style="text-align:left;">
                <li id="empty" class="ditem-empty" style="list-style-type:none; ">暂无照片</li>
            </div>
            <br/>
            <div class="b-waring" onclick="cleanHistory();" style="border: 1px solid #999999;margin: 10px;padding:10px 0 ;text-align: center;">清空照片</div>
            <br/>

            <div class="button long-btn" onclick="upload()" style="border: 1px solid #999999;margin: 10px;padding:10px 0 ;text-align: center;">上传</div>
            <br/>

        </div>
        @@##@@
    </body>

</html>

javascript - 我把图片上传到服务器,不知道怎么在浏览器访问这张图片

php(服务端)返回上传成功后的路径给浏览器(客服端)

做图片预览的话,服务器端上传成功之后返回前端一个图片的地址,前端再将图片显示出来

这样可以在浏览器生成图片的地址提前预览 不需要等到服务器返回地址
function getObjectURL(file) {
                var url = null;
                if (window.createObjectURL != undefined) { // ie
                    url = window.createObjectURL(file);
                } else if (window.URL != undefined) { // 火狐
                    url = window.URL.createObjectURL(file);
                } else if (window.webkitURL != undefined) { // 谷歌
                    url = window.webkitURL.createObjectURL(file);
                }
                    return url;
            }

图片上传成功后,需要后端返回成功信息。
具体要和后端商量。

立即学习Java免费学习笔记(深入)”;

API接口文档,返回什么参数。需要用到什么,就和后端沟通。

将图片路径存到数据库里面,再读取出来

IBM Watson
IBM Watson

IBM Watson文字转语音

下载

一般都是后端把路径返回前端,你们后端要闹哪样

一般都是后端生成生给你一个URL的,你问下response回来是什么打出来看看,或者直接问后端的开发人员

通过上传接口上传图片,通常接口会返回相关数据,比如:

{data:{status:1,imgPath:"/xxx/xx.png"}}

status 上传的状态(上传成功,上传不成功),imgPath上传成功通常会给出访问图片的地址。

通过返回的图片地址就可访问图片了

javascript - 我把图片上传到服务器,不知道怎么在浏览器访问这张图片javascript - 我把图片上传到服务器,不知道怎么在浏览器访问这张图片javascript - 我把图片上传到服务器,不知道怎么在浏览器访问这张图片javascript - 我把图片上传到服务器,不知道怎么在浏览器访问这张图片javascript - 我把图片上传到服务器,不知道怎么在浏览器访问这张图片javascript - 我把图片上传到服务器,不知道怎么在浏览器访问这张图片

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

15

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

23

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

75

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

95

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

218

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

420

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

168

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

221

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

33

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 13.3万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号