i need a solution that when user click multiple times on file upload control then old selected file should not remover or update latest , suppose when user select 5 file at a time and again he need 2 more file to add then it will become 7 file selected in control not 2.
my control code contain
aspx
<pre lang="HTML">
script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function dis() {
$(document).ready(function () {
$(".addm").on("click", function () {
$(".files").click();
});
$(".sss").on("click", function () {
$(".files").click();
});
function readImage(file) {
var reader = new FileReader();
var image = new Image();
reader.readAsDataURL(file);
reader.onload = function (_file) {
image.src = _file.target.result;
image.onload = function () {
var w = this.width,
h = this.height,
t = file.type,
n = file.name,
s = ~ ~(file.size / 1024) + 'KB';
$(".f").css("visibility", "visible");
$('.f .g').append('<img style="max-width:102px; max-height:102px; margin-left:3px;" src="' + this.src + '"> ' + ' ');
$('.ms').css("display", "none");
};
image.onerror = function () {
alert('Invalid file type: ' + file.type);
};
};
}
$(".files").change(function (e) {
if (this.disabled) return alert('File upload not supported!');
var F = this.files;
if (F && F[0]) for (var i = 0; i < F.length; i++) readImage(F[i]);
});
});
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<script type="text/javascript">
Sys.Application.add_load(dis);
</script>
</ContentTemplate>
</asp:UpdatePanel>
<div class="comment-box">
<ul>
<li><span>
<img src="../../images/status_icon.png" alt="" /></span><asp:LinkButton ID="lnkUpdateStatus"
runat="server" OnClick="lnkUpdateStatus_Click">Update Status</asp:LinkButton>
</li>
<li><span>
<img src="../../images/add-photo-icon.png" alt="" /></span>
<asp:LinkButton ID="lnkAddPhotoVideo" runat="server" OnClick="lnkAddPhotoVideo_Click">Add Photos/Video</asp:LinkButton>
</li>
</ul>
<div class="text-area">
<div class="corner">
</div>
<div class="corner-1">
</div>
<div class="clear">
</div>
<div class="text-part tt" id="Status" runat="server">
<asp:TextBox ID="txtstatus" CssClass="style h" runat="server" TextMode="MultiLine"></asp:TextBox>
<cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender3" runat="server" TargetControlID="txtstatus"
WatermarkText="Enter Your Status">
</cc1:TextBoxWatermarkExtender>
<div class="clear">
</div>
<div class="button-area">
<asp:Button ID="btnsubmitstatus" runat="server" Text="Post" CssClass="submit-style g"
OnClick="btnsubmitstatus_Click" /></div>
</div>
<div class="text-part ms" id="AddPhotoAlbum" runat="server" visible="false">
<ul>
<li>
<div class="sss">
<br />
<br />
"FileUpload1" class="multi files">Create Photo Album<br />
<br />
<br />
<br />
</li>
</ul>
<div class="clear">
</div>
<div class="button-area">
<%-- <asp:Button ID="btnPost" runat="server" Text="Post" CssClass="submit-style" />--%>
</div>
</div>
<div class="text-part-1 f" id="AddPhotos" style="visibility: hidden">
<asp:TextBox ID="txtPhoto" CssClass="style h" runat="server" TextMode="MultiLine"></asp:TextBox>
<cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender1" runat="server" TargetControlID="txtPhoto"
WatermarkText="Enter Your Status">
</cc1:TextBoxWatermarkExtender>
<div class="upload-image g" id="Photo">
</div>
<div class="addm" style="float: left;">
<%-- ^__b style="removed: pointer;">Add More--%>
</div>
<div class="clear">
</div>
<div class="button-area">
<asp:Button ID="btnAddPhoto" runat="server" Text="Post" CssClass="submit-style" OnClick="btnAddPhoto_Click" />
</div>
</div>
</div>
</div>
cs
protected void btnsubmitstatus_Click(object sender, EventArgs e)
{
if (txtstatus.Text != "")
{
string User_Id = ab.GetUser_Id(uid);
string TypeId = ab.GetTypeID("Status-Text");
ab.InsertSlamBookStatus(txtstatus.Text, null, null, null, null, null, null, User_Id, TypeId, null, DateTime.Now.ToString(), "", "", "");
txtstatus.Text = "";
}
}
protected void lnkUpdateStatus_Click(object sender, EventArgs e)
{
Status.Visible = true;
AddPhotoAlbum.Visible = false;
}
protected void lnkAddPhotoVideo_Click(object sender, EventArgs e)
{
AddPhotoAlbum.Visible = true;
Status.Visible = false;
}
protected void btnAddPhoto_Click(object sender, EventArgs e)
{
string pt = null;
string cpath = null;
string PhotoFolder = "~/Photos/";
string PhotoThumbFolder = "~/Photos/Thumb/";
if (FileUpload1.HasFile)
{
string UID = ab.GetUser_Id(uid);
string imgName = Path.GetFileName(FileUpload1.FileName);
string date = DateTime.Now.ToString();
while (File.Exists(Server.MapPath(PhotoFolder + imgName)))
{
cpath = Server.MapPath(PhotoFolder + imgName);
pt = Server.MapPath(PhotoThumbFolder + imgName);
File.Delete(cpath);
File.Delete(pt);
}
HttpFileCollection hfc = HttpContext.Current.Request.Files;
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
if (hpf.ContentLength > 0)
{
hpf.SaveAs(Server.MapPath(PhotoFolder) + Path.GetFileName(hpf.FileName));
System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath(PhotoFolder) + hpf.FileName);
Size thumbnailSize = GetThumbnailSize(image);
System.Drawing.Image thumbnail = image.GetThumbnailImage(thumbnailSize.Width, thumbnailSize.Height, null, IntPtr.Zero);
thumbnail.Save(Server.MapPath(PhotoThumbFolder + hpf.FileName));
string PhotoTypeId = ab.GetTypeID("Photo");
ab.InsertSinglePhotointoAlbum(PhotoTypeId, null, date, hpf.FileName);
string AlbumId = ab.GetAlbumID(PhotoTypeId, date, hpf.FileName);
ab.InsertSlamBookStatus(null, AlbumId, null, null, null, null, null, UID, PhotoTypeId, null, date, null, null, null);
}
}
}
}
static Size GetThumbnailSize(System.Drawing.Image original)
{
const int maxPixels = 450;
int originalWidth = original.Width;
int originalHeight = original.Height;
double factor;
if (originalWidth > originalHeight)
{
factor = (double)maxPixels / originalWidth;
}
else
{
factor = (double)maxPixels / originalHeight;
}
return new Size((int)(originalWidth * factor), (int)(originalHeight * factor));
}