JQuery实现选择桌面照片,替换为网页背景【以及解决上传文件路径问题】

1、上传文件出现问题;

2、选择桌面文件,获取input标签的值,出现一个假的路径,这是由于浏览器的保护机制。

3、解决这个方法,自然可以取消浏览器的保护机制【*******但这不可取,所以此篇重点就出来了】

重点:4、解决获取input的file值问题。

重点js代码:

//修改背景图片的方法
function changBackground(){
    /**
 * 文件预览
 */
var fileObj = document.getElementById("file_road").files[0];
if (window.createObjcectURL != undefined) {
    url = window.createOjcectURL(fileObj);
alert(url);
} else if (window.URL != undefined) {
    url = window.URL.createObjectURL(fileObj);
alert(url);
} else if (window.webkitURL != undefined) {
    url = window.webkitURL.createObjectURL(fileObj);
}
//这里是将选择的图片加入想要加入的id
$("#mbody").css({"background-image":"url(‘"+url+"‘)"});
}

完整代码:

 <!doctype html>
 <html charset="en">
 <head>
 <meta charset="utf-8"/>
 <title>你好!音乐</title>
 <style type="text/css">
 body{
  white-space:normal;
  word-break:break-all;
  overflow:hidden;/** 这几句是对所有的子框都做了处理 **/
  text-align:center;
 }
 #music{
 margin:0 auto;
 margin-top:80px;
 width:800px;
 height:550px;
 background-color:#9998;
 box-shadow: 10px 10px 20px 10px rgba(0,250,154,0.5), -10px 10px 10px 10px rgba(255,255,255,0.5)
 }
 #mleft{
 width:200px;
 height:500px;
 float:left;
 background-color:rgb(0,191,255);
 }
 #mright{
 width:600px;
 height:500px;
 float:left;
 background-color:rgb(0,250,154);
 }
 #mright .mhead{
  width:600px;
  height:50px;
  background-color:rgb(0,250,154);
 }
 #mright #mbody{
  width:600px;
  height:450px;
  opacity:1;
 background-image:url("./jkq.bmp");
 background-repeat:no-repeat;
 background-size:100% 100%;
 }
 .footer{
 width:800px;
 height:50px;
 float:right;
 background-color:rgb(255,255,0);
 }

  #adv{
  width:100%;
  height:50px;
  background-color:rgb(255,165,0);
  position:fixed;
  top:0px;
  right:0px;
  box-shadow: 10px 10px 30px rgb(0,0,0);
 }
 </style>
 </head>
 <body>
 <div id="music">
 <!-- 左侧 -->
    <div id="mleft">

    </div>
 <!-- 右侧 -->
    <div id="mright">
 <!-- mhead -->
        <div class="mhead">

        </div>
<!-- mbody -->
        <iframe name="mbody" class="mbody" id="mbody" src="https://www.baidu.com" frameborder="0">
        </iframe>
    </div>
<!-- footer -->
    <div class="footer">

    </div>
 </div>

 <!-- Advertisement广告 -->
<div id="adv">
    <a href="https://www.qq.com" target="mbody"> 腾讯网</a>
    <button id="reduction">还原</button><button id="fullscreen">最大化</button><input type="file" id="file_road" placeholder="请选择"/>
</div>
 </body>
 </html>
 <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
 <script type="text/javascript">
 //查看jquery版本,以及是否加载成功,在浏览器调试,控制台输入$.fn.jquery
  //width:600px;
  //height:450px;
  //opacity:1;
  //background-color:rgb(0,250,154);
$(document).ready(function(){
  $("#reduction").click(function(){
    $(".mbody").css({"width":"600px","height":"450px","position":"static"});
    //下面的fixed的样式也要变
    $("#adv").css({"position":"fixed","width":"100%"});
  });
  $("#fullscreen").click(function(){
    $(".mbody").css({"width":$(window).width()+"px","height":$(window).height()+"px","position":"fixed","top":"0px","left":"0px"});
    //下面的fixed的样式也要变
    $("#adv").css({"top":"0px","right":"0px","width":"200px","height":"50px","box-shadow":"10px 10px 5px 0.5 red"});
    changBackground();
  });
});

//修改背景图片的方法
function changBackground(){
    /**
 * 文件预览
 */
var fileObj = document.getElementById("file_road").files[0];
if (window.createObjcectURL != undefined) {
    url = window.createOjcectURL(fileObj);
alert(url);
} else if (window.URL != undefined) {
    url = window.URL.createObjectURL(fileObj);
alert(url);
} else if (window.webkitURL != undefined) {
    url = window.webkitURL.createObjectURL(fileObj);
}
$("#mbody").css({"background-image":"url(‘"+url+"‘)"});
}
 </script>

原文地址:https://www.cnblogs.com/ciscolee/p/12416604.html

时间: 2024-08-29 14:36:08

JQuery实现选择桌面照片,替换为网页背景【以及解决上传文件路径问题】的相关文章

解决上传文件或图片时选择相同文件无法触发change事件的问题

昨天在做一个上传文件的模块时遇到了这样的问题:打开文件一上传,上传成功后再次点击文件一,change事件无反应 <input type="file" name="file" class="file-input" @change="setFile" /> 在网上查了一番发现,当第一次选择文件一上传时,存放的文件由空变成了文件一,上传成功后,再次选择文件一,此时就相当于没有change,所以两次选择相同的文件不会触发c

【转】JQuery插件ajaxFileUpload 异步上传文件(PHP版)

前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现ajaxFileUpload这个插件挺不错,所以就用这个插件来做异步上传文件的效果.网上也有很多对ajaxFileUpload插件的使用的文章,不过我发现没有PHP版,所以这次服务器那边的处理就使用PHP语言来处理. 一.先对ajaxFileUpload插件的语法参数进行讲解 原理:ajaxfileu

JQuery插件ajaxFileUpload 异步上传文件

一.先对ajaxFileUpload插件的语法参数进行讲解 原理:ajaxfileupload是通过监听iframe的onload方法来实现, 当从服务端处理完成后,就触发iframe的onload事件调用其绑定的方法,在绑定的方法中获取iframe中服务器返回的数据体(支持的普通文本,json,xml,script, html) 语法:$.ajaxFileUpload([options]) 参数说明: 1,url  上传处理程序地址,也就是我发送给服务器端所要处理上传的地址. 2,fileEl

jquery上传文件控件Uploadify

基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个版本,一个用flash,一个是html5.html5的需要付费~所以这里只说flash版本的用法. 官网:http://www.uploadify.com/ 控件截图: 用法: 首先引用下面的文件 <link rel="stylesheet" type="text/css&

JQuery插件ajaxFileUpload 异步上传文件(PHP版)

太久没写博客了,真的是太忙了.善于总结,进步才会更快啊.不多说,直接进入主题. 前几天想在手机端做个异步上传图片的功能,平时用的比较多的JQuery图片上传插件是Uploadify这个插件,效果很不错,但是由于手机不支持flash,所以不得不再找一个文件上传插件来用了.后来发现ajaxFileUpload这个插件挺不错,所以就用这个插件来做异步上传文件的效果.网上也有很多对ajaxFileUpload插件的使用的文章,不过我发现没有PHP版,所以这次服务器那边的处理就使用PHP语言来处理. 一.

jQuery之批量上传文件插件之一

$("#uploader").plupload({     /*常规设置*/     runtimes:'html5,flash,silverlight,html4',     url:'hyzx/seller/commPicUpload.action',     /*最大文件限制b, kb, mb, gb, tb */     max_file_size:'1mb',     /*是否生成唯一文件名,如果为true会为上传的文件唯一的文件名.*/     unique_names:t

使用django表单,使网页添加上传文件,并分析文件。

开发环境是: apache + python + django+ eclipse(开发环境) 欲达到目的: 在网页上,添加上传文件控件.然后读取csv文件,并分析csv文件. 操作步骤: django 是MVC的设计模式 (模型M,视图V,控制器C) 1.从django的基本模型中,构建自己的模型. 在myforms.py文件中添加如下代码,之后在html显示的表单数据就可以采用这个模型的数据了. from django import forms from django.views.decora

基于jQuery的ajax系列之用FormData实现页面无刷新上传

接着上一篇ajax系列之用jQuery的ajax方法向服务器发出get和post请求写,这篇主要写如何利用ajax和FormData实现页面无刷新的文件上传效果,主要用到了jQuery的ajax()方法和XMLHttpRequest Level 2的FormData接口.关于FormData,大家可以看MDN文档. 1,先看效果图 期望的功能和效果很简单:点击页面中的上传文件表单控件,选择文件后点击"ajax提交",将文件上传至服务器,上传成功后,页面给出一个简单的提示. 2,前端的代

Jquery上传插件Uploadify无刷新上传文件

Uploadify v3.2.1  上传图片并预览 前端JSP: <script type="text/javascript">                             $(function() {                 $("#upload_org_code").uploadify({                     'height'        : 27,                      'width'