2016-04-12 17 views
0

Eğer bu soru biraz kafa karıştırıcı, ama nasıl açıklayabileceğimi bilmiyorum.Jquery: Dosya ve dosya yükleme için 1 düğme?

Temel olarak, dosya seçmek için 1 düğmesini kullanmalıyım ve dosya seçildikten sonra dosya, standart dosya girişi + gönderme düğmesinin aksine otomatik olarak yüklenir.

Yani her zamanki standart dosya yükleme şu şekildedir:

<form id="form" action="ajaxupload.php" method="post" enctype="multipart/form-data"> 


<input id="uploadImage" type="file" accept="image/*" name="image" /> 

<input id="button" type="submit" value="Upload"> 

</form> 

herhangi bir yolu biz orada böyle bir şey olabilir geçerli:

<form id="form" action="ajaxupload.php" method="post" enctype="multipart/form-data"> 
<input id="uploadImage" type="file" accept="image/*" name="image" /> 
    </form> 

ve dosyanın bu iletişim kutusundan seçilen keresinde seçim dosyasına tıkladıktan sonra açılır (dosya girişi), dosya yüklenir mi?

Bunu pek çok sitede yaptım ve nasıl yapıldığını merak ediyorum.

Herhangi bir yardım için teşekkür ederiz.

+0

temizlemez, bunu uygulamak bazı siteyi adlandırabilirsiniz. – Sumanta736

cevap

2

Aşağıdaki kod düzeltmek yardımcı olmalıdır o

$("document").ready(function() { 
 

 
    $("#uploadImage").change(function() { 
 
    $('#form').submit(); 
 
    }); 
 

 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="form" action="ajaxupload.php" method="post" enctype="multipart/form-data"> 
 
    <input id="uploadImage" type="file" accept="image/*" name="image" /> 
 

 
</form>

+0

OP formda gönderme butonu istemiyor; – itzmukeshy7

+0

@ itzmukeshy7, bu aslında doğru cevap ve cazibe gibi çalıştı. Gönder düğmesini kaldırmalıydım. – rooz

+0

@LazyDeveloper bir dosya seçip seçmediyse bir kontrol daha yapabilir misin? – itzmukeshy7

0

Sen bir javascript değişikliği olayı dosyası girişini ekle
http://www.dropzonejs.com/

+0

Şuna baktım ama bu benim peşinde değil! Bu, aradığım şey olmayan bir dosya uzantısı eklentisidir. öneri için teşekkürler. – rooz

0

aşağıdaki bağlantıyı tıklayın bu kütüphane Dropzone.js kullanabilirsiniz. değişim işlevi içinde dosya

Ayrıca gizli

yani #uploadImage için css set yükleyene. jquery #uploadimage{display:"none"}

mesela bu yardımcı olur

$("#fileinput").change(function() { 
 
//do the fileupload here 
 
});

Umut.

+0

Kod snippet'iniz Boş/boş. – rooz

+0

Üzgünüm, onun değil bir runnable kodu. sadece konsepti size açıklamak istedim. – kweku360

0
önizleme ile bunu yapmanın en iyi yolu

:

<input type='file' /> 
<img id="myImg" src="#" alt="your image" /> 

$("#myImg").hide(); 
$(function() { 
    $(":file").change(function() { 
    if (this.files && this.files[0]) { 
     var reader = new FileReader(); 
     reader.onload = imageIsLoaded; 
     reader.readAsDataURL(this.files[0]); 
     } 
    }); 
}); 

    function imageIsLoaded(e) { 
    $("#myImg").show(); 
    $('#myImg').attr('src', e.target.result); 
}; 

Codepen: Eğer varsa http://codepen.io/anon/pen/aNqPbb

0

Bootst kullanarak rap, Bootstrap Filestyle plugin kullanarak güzel tek düğme dosya girişleri oluşturabilirsiniz.

Bu oluşturabileceğiniz birçok etkilerinden biri:

enter image description here

$(document).ready(function(){ 
 

 
// <script type="text/javascript" src="js/bootstrap-filestyle.min.js"> </script> include this file.. 
 

 

 
(function($){var nextId=0;var Filestyle=function(element,options){this.options=options;this.$elementFilestyle=[];this.$element=$(element)};Filestyle.prototype={clear:function(){this.$element.val("");this.$elementFilestyle.find(":text").val("");this.$elementFilestyle.find(".badge").remove()},destroy:function(){this.$element.removeAttr("style").removeData("filestyle");this.$elementFilestyle.remove()},disabled:function(value){if(value===true){if(!this.options.disabled){this.$element.attr("disabled","true");this.$elementFilestyle.find("label").attr("disabled","true");this.options.disabled=true}}else{if(value===false){if(this.options.disabled){this.$element.removeAttr("disabled");this.$elementFilestyle.find("label").removeAttr("disabled");this.options.disabled=false}}else{return this.options.disabled}}},buttonBefore:function(value){if(value===true){if(!this.options.buttonBefore){this.options.buttonBefore=true;if(this.options.input){this.$elementFilestyle.remove();this.constructor();this.pushNameFiles()}}}else{if(value===false){if(this.options.buttonBefore){this.options.buttonBefore=false;if(this.options.input){this.$elementFilestyle.remove();this.constructor();this.pushNameFiles()}}}else{return this.options.buttonBefore}}},icon:function(value){if(value===true){if(!this.options.icon){this.options.icon=true;this.$elementFilestyle.find("label").prepend(this.htmlIcon())}}else{if(value===false){if(this.options.icon){this.options.icon=false;this.$elementFilestyle.find(".icon-span-filestyle").remove()}}else{return this.options.icon}}},input:function(value){if(value===true){if(!this.options.input){this.options.input=true;if(this.options.buttonBefore){this.$elementFilestyle.append(this.htmlInput())}else{this.$elementFilestyle.prepend(this.htmlInput())}this.$elementFilestyle.find(".badge").remove();this.pushNameFiles();this.$elementFilestyle.find(".group-span-filestyle").addClass("input-group-btn")}}else{if(value===false){if(this.options.input){this.options.input=false;this.$elementFilestyle.find(":text").remove();var files=this.pushNameFiles();if(files.length>0&&this.options.badge){this.$elementFilestyle.find("label").append(' <span class="badge">'+files.length+"</span>")}this.$elementFilestyle.find(".group-span-filestyle").removeClass("input-group-btn")}}else{return this.options.input}}},size:function(value){if(value!==undefined){var btn=this.$elementFilestyle.find("label"),input=this.$elementFilestyle.find("input");btn.removeClass("btn-lg btn-sm");input.removeClass("input-lg input-sm");if(value!="nr"){btn.addClass("btn-"+value);input.addClass("input-"+value)}}else{return this.options.size}},placeholder:function(value){if(value!==undefined){this.options.placeholder=value;this.$elementFilestyle.find("input").attr("placeholder",value)}else{return this.options.placeholder}},buttonText:function(value){if(value!==undefined){this.options.buttonText=value;this.$elementFilestyle.find("label .buttonText").html(this.options.buttonText)}else{return this.options.buttonText}},buttonName:function(value){if(value!==undefined){this.options.buttonName=value;this.$elementFilestyle.find("label").attr({"class":"btn "+this.options.buttonName})}else{return this.options.buttonName}},iconName:function(value){if(value!==undefined){this.$elementFilestyle.find(".icon-span-filestyle").attr({"class":"icon-span-filestyle "+this.options.iconName})}else{return this.options.iconName}},htmlIcon:function(){if(this.options.icon){return'<span class="icon-span-filestyle '+this.options.iconName+'"></span> '}else{return""}},htmlInput:function(){if(this.options.input){return'<input type="text" class="form-control '+(this.options.size=="nr"?"":"input-"+this.options.size)+'" placeholder="'+this.options.placeholder+'" disabled> '}else{return""}},pushNameFiles:function(){var content="",files=[];if(this.$element[0].files===undefined){files[0]={name:this.$element[0]&&this.$element[0].value}}else{files=this.$element[0].files}for(var i=0;i<files.length;i++){content+=files[i].name.split("\\").pop()+", "}if(content!==""){this.$elementFilestyle.find(":text").val(content.replace(/\, $/g,""))}else{this.$elementFilestyle.find(":text").val("")}return files},constructor:function(){var _self=this,html="",id=_self.$element.attr("id"),files=[],btn="",$label;if(id===""||!id){id="filestyle-"+nextId;_self.$element.attr({id:id});nextId++}btn='<span class="group-span-filestyle '+(_self.options.input?"input-group-btn":"")+'"><label for="'+id+'" class="btn '+_self.options.buttonName+" "+(_self.options.size=="nr"?"":"btn-"+_self.options.size)+'" '+(_self.options.disabled?'disabled="true"':"")+">"+_self.htmlIcon()+'<span class="buttonText">'+_self.options.buttonText+"</span></label></span>";html=_self.options.buttonBefore?btn+_self.htmlInput():_self.htmlInput()+btn;_self.$elementFilestyle=$('<div class="bootstrap-filestyle input-group">'+html+"</div>");_self.$elementFilestyle.find(".group-span-filestyle").attr("tabindex","0").keypress(function(e){if(e.keyCode===13||e.charCode===32){_self.$elementFilestyle.find("label").click();return false}});_self.$element.css({position:"absolute",clip:"rect(0px 0px 0px 0px)"}).attr("tabindex","-1").after(_self.$elementFilestyle);if(_self.options.disabled){_self.$element.attr("disabled","true")}_self.$element.change(function(){var files=_self.pushNameFiles();if(_self.options.input==false&&_self.options.badge){if(_self.$elementFilestyle.find(".badge").length==0){_self.$elementFilestyle.find("label").append(' <span class="badge">'+files.length+"</span>")}else{if(files.length==0){_self.$elementFilestyle.find(".badge").remove()}else{_self.$elementFilestyle.find(".badge").html(files.length)}}}else{_self.$elementFilestyle.find(".badge").remove()}});if(window.navigator.userAgent.search(/firefox/i)>-1){_self.$elementFilestyle.find("label").click(function(){_self.$element.click();return false})}}};var old=$.fn.filestyle;$.fn.filestyle=function(option,value){var get="",element=this.each(function(){if($(this).attr("type")==="file"){var $this=$(this),data=$this.data("filestyle"),options=$.extend({},$.fn.filestyle.defaults,option,typeof option==="object"&&option);if(!data){$this.data("filestyle",(data=new Filestyle(this,options)));data.constructor()}if(typeof option==="string"){get=data[option](value)}}});if(typeof get!==undefined){return get}else{return element}};$.fn.filestyle.defaults={buttonText:"Choose file",iconName:"glyphicon glyphicon-folder-open",buttonName:"btn-default",size:"nr",input:true,badge:true,icon:true,buttonBefore:false,disabled:false,placeholder:""};$.fn.filestyle.noConflict=function(){$.fn.filestyle=old;return this};$(function(){$(".filestyle").each(function(){var $this=$(this),options={input:$this.attr("data-input")==="false"?false:true,icon:$this.attr("data-icon")==="false"?false:true,buttonBefore:$this.attr("data-buttonBefore")==="true"?true:false,disabled:$this.attr("data-disabled")==="true"?true:false,size:$this.attr("data-size"),buttonText:$this.attr("data-buttonText"),buttonName:$this.attr("data-buttonName"),iconName:$this.attr("data-iconName"),badge:$this.attr("data-badge")==="false"?false:true,placeholder:$this.attr("data-placeholder")};$this.filestyle(options)})})})(window.jQuery); 
 

 

 
$(":file").filestyle({input: false}); 
 
})
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script> 
 

 
<input type="file" class="filestyle" data-input="false" data-buttonName="btn-info btn-xs" />

İlgili konular