`
oywl2008
  • 浏览: 1051394 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Html 上传文件

 
阅读更多
<script type="text/javascript">
function onUploadImgChange(sender){   
    if( !sender.value.match( /.jpg|.gif|.png|.bmp/i ) ){   
        alert('图片格式无效!');   
        return false;   
    }   
       
    var objPreview = document.getElementById( 'preview' );   
    var objPreviewFake = document.getElementById( 'preview_fake' );   
    var objPreviewSizeFake = document.getElementById( 'preview_size_fake' );   
       
    if( sender.files && sender.files[0] ){   
        objPreview.style.display = 'block';   
        objPreview.style.width = 'auto';   
        objPreview.style.height = 'auto';   
           
        // Firefox 因安全性问题已无法直接通过 input[file].value 获取完整的文件路径   
        objPreview.src = sender.files[0].getAsDataURL();       
    }else if( objPreviewFake.filters ){    
        // IE7,IE8 在设置本地图片地址为 img.src 时出现莫名其妙的后果   
        //(相同环境有时能显示,有时不显示),因此只能用滤镜来解决   
           
        // IE7, IE8因安全性问题已无法直接通过 input[file].value 获取完整的文件路径   
        sender.select();   
        var imgSrc = document.selection.createRange().text;   
           
        objPreviewFake.filters.item(   
            'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;   
        objPreviewSizeFake.filters.item(   
            'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;   
           
        autoSizePreview( objPreviewFake,    
            objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight );   
        objPreview.style.display = 'none';   
    }   
}   

function onPreviewLoad(sender){   
    autoSizePreview( sender, sender.offsetWidth, sender.offsetHeight );   
}   

function autoSizePreview( objPre, originalWidth, originalHeight ){   
    var zoomParam = clacImgZoomParam( 150,150, originalWidth, originalHeight );   
    objPre.style.width = zoomParam.width + 'px';   
    objPre.style.height = zoomParam.height + 'px';   
    objPre.style.marginTop = zoomParam.top + 'px';   
    objPre.style.marginLeft = zoomParam.left + 'px';   
}   

function clacImgZoomParam( maxWidth, maxHeight, width, height ){   
    var param = { width:width, height:height, top:0, left:0 };   
       
    if( width>maxWidth || height>maxHeight ){   
        rateWidth = width / maxWidth;   
        rateHeight = height / maxHeight;   
           
        if( rateWidth > rateHeight ){   
            param.width = maxWidth;   
            param.height = height / rateWidth;   
        }else{   
            param.width = width / rateHeight;   
            param.height = maxHeight;   
        }   
    }   
       
    param.left = (maxWidth - param.width) / 2;   
    param.top = (maxHeight - param.height) / 2;   
       
    return param;   
}   
</script>

</head>

<body>
    <div id="preview_wrapper">
        <div id="preview_fake">
            <img id="preview" src="/pxcoa/images/nophoto.jpg"/>
        </div>
    </div>
    <br/>
    <input id="upload_img" type="file" onchange="onUploadImgChange(this)"/>
    <br/>
    <img id="preview_size_fake" >
</body>
</html>
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <link href="http://www.iteye.com/stylesheets/attachment.css?1344923975" media="screen" rel="stylesheet" type="text/css" /> <script src="http://www.iteye.com/javascripts/application.js?1338174647" type="text/javascript"></script> </head> <body> <form action="/attachments" enctype="multipart/form-data" id="attachment_form" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="3qGC4UswCKlkK2LP2eywMROPpi1szkeN51sFaSAM8y4=" /></div> <input id="attachment_uploaded_data" name="attachment[uploaded_data]" onchange="upload(this.value);" size="30" type="file" /> <span id="spinner" style="display:none;">上传中 <img alt="Spinner" src="http://www.iteye.com/images/spinner.gif?1324994303" /></span> </form> <script type="text/javascript"> if(document.location.host != "www.iteye.com") document.domain = "iteye.com"; function upload(fileName) { if (!$A(['jpg','jpeg','bmp','png','gif','rar','zip', 'tar', 'gz', 'jar', 'war', 'bz2', '7z', 'pdf', 'swf']).any(function(extName){return new RegExp('\\.'+extName+'$','i').test(fileName);})){ alert("如果您上传图片,请上传png, jpg, gif或者bmp格式的图片\n如果您上传附件,请先压缩再上传"); return false; } var counter = parseInt(window.parent.$('attachments_counter').value) + 1; window.parent.$('attachments_counter').value = counter; window.parent.$('submit_button').value = counter + " 个文件正在上传中,请等待完成后再提交"; $('spinner').show(); var iframes = window.parent.$("attachment_iframes"); iframes.appendChild(iframes.getElementsByTagName('iframe')[0].cloneNode(false)); $('attachment_form').submit(); } </script> </body> </html>

 

 

上传新的文件:
<div id="attachment_iframes">
  
  <iframe src="/attachments/new" style="border:0px;height:30px;width:100%;" frameborder="0" border="0" cellspacing="0" allowTransparency="true" scrolling="no" resizable="no"></iframe>
  
  <input type="hidden" value="0" class="max-value-0" id="attachments_counter"/>
</div>
 

 

 

分享到:
评论

相关推荐

    ASP.NET通过HTML的上传文件标签来上传文件

    这篇博客文章“ASP.NET通过HTML的上传文件标签来上传文件”将引导我们了解如何在ASP.NET环境中实现文件上传功能。 首先,HTML中的`&lt;input type="file"&gt;`标签是用于让用户选择本地文件的关键。在ASP.NET页面中,我们...

    前端Javascript+Html5+后端PHP分块上传文件

    前端Javascript+Html5+后端PHP分块上传文件,PHP分块上传大文件,该项目可以正常运行,入口为index.html,需要正确配置fileDir的读写权限 目前有测试过上传1.5G左右的没有问题(未测试更大的文件),理论上更大的...

    HTML上传文件的3种实现方法.1用flash上传文件2用js插件上传文件3用表单上传文件

    HTML实现文件上传的3种实现方法 1用flash上传文件 2用js插件上传文件 3用表单上传文件

    html文件上传后,处理类对上传文件的jar包处理

    html文件上传后,处理类对上传文件的jar包处理html文件上传后,处理类对上传文件的jar包处理html文件上传后,处理类对上传文件的jar包处理html文件上传后,处理类对上传文件的jar包处理html文件上传后,处理类对上传...

    Html上传文件类型、大小限制

    Html上传文件类型、大小限制

    功能强大的文件上传组件

    【描述】"Html5上传文件或者图片"指出该组件不仅支持普通文件的上传,还特别强调了对图片的支持。HTML5的FileReader接口允许我们在前端预览图片,提供更好的用户体验。用户可以选择图片,即时预览后,再决定是否上传...

    上传文件demo.html

    上传文件demo.html

    jquery+ajaxfileupload+html文件上传

    这个插件的核心在于它可以监听文件选择事件,然后在后台上传文件,同时可以显示进度条和错误信息。 ### HTML基础 HTML是超文本标记语言,用于构建网页结构。在文件上传中,我们需要一个`&lt;form&gt;`元素来收集用户选择...

    HTML文件上传示例

    在网页设计中,HTML文件上传和CSS3以及HTML5的页面标签切换是两个重要的技术点。HTML文件上传允许用户在浏览器端将本地文件传递到服务器,而CSS3和HTML5的页面标签切换则能为用户提供更流畅、更具交互性的浏览体验。...

    在html页面使用JavaScript实行文件上传到本地服务器并获取文件所在路径

    使用JavaScript实现文件上传到本地服务器并获取到上传后文件所在路径,是由到JavaScript,java以及html页面。这个比较好,不是在jsp上获取路径,jsp太简单了,而且过时了,所以就在html页面实现了下功能,我主要是做...

    html5文件上传器演示

    客户端完全基于JavaScript的浏览器文件上传器,不需要任何浏览器插件,但需要和jQuery框架协同工作,支持超大文件上传,其算法是将一个超大文件切片成N个数据块依次提交给服务端处理,由服务端存储断点信息实现断点...

    html5文件上传插件

    HTML5文件上传插件是一种基于Web技术实现的前端交互组件,它允许用户在网页上方便地上传文件到服务器,尤其适用于后台文件管理、图片展示、多媒体资源上传等场景。随着HTML5技术的发展,文件上传功能得到了显著提升...

    HTML中文件上传与上传进度跟踪的原理分析.pdf

    在HTML中实现文件上传,主要是通过HTML表单和HTTP协议的multipart/form-data编码方式来完成的。RFC1867规范定义了如何在HTML表单中添加文件上传功能,它引入了`&lt;input type="file"&gt;`控件,使得用户可以在浏览器端...

    html post上传文件

    这里,`enctype="multipart/form-data"`是关键,它指定表单数据将以多部分/形式数据格式发送,这是上传文件所必需的。 二、HTTP与POST请求 当用户提交表单时,浏览器会发起一个POST请求到指定的URL(在这个例子中是...

    asp.net上传文件的两种方式 普通html控件 服务器控件

    本文将详细介绍两种上传文件的方式:普通HTML控件和服务器控件。 ### 1. HTML控件(File Input) HTML中的`&lt;input type="file" /&gt;`控件可以用来选择本地文件进行上传。这种方式相对简单,但处理起来较为复杂,因为...

    Html5前端图片文件上传

    例如,防止恶意用户上传病毒文件,限制上传文件的类型和大小,避免DoS攻击等。后端代码需要进行严格的输入验证和过滤,以确保系统安全。 7. **用户体验优化**:在实际应用中,可以通过多文件选择、拖放上传、上传...

    html5实现的文件上传预览功能

    HTML5是Web开发的一个重要里程碑,它引入了许多新特性,其中就包括了强大的文件操作API,使得在浏览器端实现文件上传预览成为可能。在这个功能中,jQuery作为一个流行的JavaScript库,常常被用来简化DOM操作和事件...

    HTML5+WebSocket实现多文件同时上传的实例

    结合HTML5的新特性,我们可以实现多文件同时上传,并且能够实时监控上传进度。 在传统的HTTP上传方式中,由于其请求-响应模型的限制,多文件上传往往需要多次HTTP请求,而且无法实时获取上传进度。而HTML5引入了...

    基于bootstrap.3的文件上传效果, 可拖拽上传、预览的HTML5文件上传插件.zip

    在这个上下文中,HTML5的文件API是关键,它允许用户在不离开页面的情况下选择和上传文件,甚至可以实现文件预览。 文件上传插件通常使用HTML5的FormData对象,它可以将表单数据以键值对的形式发送到服务器,包括...

    HTML5分割上传文件

    HTML5是现代网页开发的重要标准,它引入了许多新特性,其中一项便是改进了文件上传功能。在传统的HTTP表单上传中,如果用户尝试上传大文件,可能会遇到速度慢、网络中断或者服务器处理压力过大的问题。为了解决这些...

Global site tag (gtag.js) - Google Analytics