Generating And Deleting Temporary Downloads?
Feb 25, 2011
I have a few ideas on how to accomplish this, but before I make a big mess perhaps there's an obviously easy solution I'm not seeing.
So I have on my site software (.NET 2, C#) a calendar, and I've recently added some code to generate a temporary iCalendar file from an event, and e-mail it to the logged in user. That part works great; the temp file is created, a MailMessage is created with teh attachment, it's sent, and then the temp file is deleted.
I want to change this into a "download" as opposed to an e-mail. So I generate the temp file, but present it to the user as a download instead (so they can open/save it immediately). That's all fine, but where I'm stuck is how to "know" the download has been completed, so I can then delete the tempoary file.
I have "hacky" options like timers and whatnot to do cleanup, but I'm wondering if I'm missing a better solution.
View 4 Replies
Similar Messages:
Sep 27, 2010
I have a repeater which binds a set of data. Within this repeater is a column with various controls for updating, deleting, etc. These are image buttons which fire an onclick event such as "DeleteRecord". All this does is fire a stored procedure, passing in the ID of the record to delete from the CommandArgument of the object.
This works wonderfully... except for one rather huge problem. Once you delete a record, if you refresh the page, the record where the first deleted record used to be gets deleted. For instance... if I have 4 records
1 Record1
2 Record2
3 Record3
4 Record4
and I delete record 2... The page reloads with (which is fine):
1 Record1
3 Record3
4 Record4
...if I then hit refresh...
1 Record1
4 Record4
I assume this is because the erroneously deleted object (record3) is now in the same hierarchical place as the old object used to be and .net therefore doesn't know the difference, the page refreshes and fires the onlick event, grabbing out the command argument of the new object and deletes based on the ID as obtained from the commandargument of the new object. This is obviously a huge problem, if a client did this it would destroy data erroneously and I'm at a loss here. Is there any way to stop this from happening? I'm not sure if there is a better way to go about doing things or not. If there isn't, I need some sort of way to tell the page not to execute the event or to cross reference the ID of the object that is intended for deletion against the object itself...
Code below for convenience...
EDIT Wrapped a LinkButton around it because I have some jquery code in here as well which stops the page execution to wait for user confirmation. Pressing "ok" continues page execution.
<asp:LinkButton ID="oDeleteLink" CssClass="oDeleteIcon" CommandName="Delete" CommandArgument='<%# Eval("iAccountID") %>' runat="server">
<asp:ImageButton ImageUrl="/files/system/icons/trash-steel-16.png" ToolTip="Delete This Account" AlternateText="Delete" ID="oDeleteIcon" runat="server" />
</asp:LinkButton>
protected void oAccounts_ItemCommand(Object Sender, RepeaterCommandEventArgs e) {
if (e.CommandName == "Delete") {
int ID = e.CommandArgument.ToString().Numeric();
db.SPs.SpDeleteAccount(ID).Execute();
UI.Confirm(uiBroadcast, "Account has been deleted", "300px");
BindAccounts();
}
}
View 2 Replies
Aug 2, 2010
How to track downloads with ASP.NET?
I want to find how many users completed the file download?
Also How can make restrict user from specific IP?
for example if a user download [URL] the track will work automatically.
View 3 Replies
May 20, 2010
I need to provide downloads of large files (upwards of 2 GB) on an ASP.net website. It has been some time since I've done something like this (I've been in the thick-client world for awhile now), and was wondering on current best practices for this I would like:
To be able to track download statistics: # of downloads is essential; actual bytes sent would be nice.
To provide downloads in a way that "plays nice" with third-party download managers. Many of our users have unreliable internet connections, and being able to resume a download is a must. To allow multiple users to download the same file simultaneously.
My download files are not security-sensitive, so providing a direct link ("right-click to download...") is a possibility. Is just providing a direct link sufficient, letting IIS handle it, and then using some log analyzer service (any recommendations?) to compile and report the statistics? Or do I need to intercept the download request, store some info in a database, then send a custom Response? Or is there an ASP.net user control (built-in or third party) that does this?
View 1 Replies
Jul 28, 2010
I've got SL application where i should implement file managment subsystem. I've got hierarchical structure of filesfolders(just description). Also each filefolder has its own permissions to usersgroups. I would like implement that one user who has permission to download file couldn't give it to another user, who hasn't this permission. So if user has download permission he get link [URL] and download it. But he could give this link to another person without permission.
View 2 Replies
Mar 20, 2010
This is my first time coding with ASP.NET!I've created a simple webpage and I need to know how to count the number of downloads of a file from my webpage.The download will be started through a button.And the other question is:Where should I store this information?
View 4 Replies
Mar 5, 2010
want to download the individual files from weburl. There are images listed on the website along with the check box for each image. User can select one or more images by checking the checkbox. When user click on Download button it should start downloading the files sequentially one after the other. File size is between 20mb to 200mb each.
View 4 Replies
Jan 4, 2010
I create a custom http handler to block download of .wmv files e.g. www.pakdev.net/videos/file.wmv (blocked by httpHandler).
But the problem is that now silverlight cannot also stream these video files as they are blocked too.
View 1 Replies
Jan 29, 2010
I guess what im really saying is if i put a link to an mp3 file on a page, and i wanted that file to be able to be downloaded by the user is there a way to count the number of times that link has been pressed by a page user?
View 2 Replies
Mar 25, 2011
We are providing downloads of our application setups through an ASHX handler in ASP.NET.
A customer told us he uses some third party download manager application and that our way of providing the files currently does not support the "resume" feature of his download manager application.
My questions are:
What are the basic behind resuming a download? Is there a certain HTTP GET request that tells me the offset to start at?
View 1 Replies
Nov 27, 2010
i have a few calls however when i type in the URI into the address bar in internet explorer it prompts me to save the file. However google chrome displays it automatically in the browser page. Does anyone know why this would occur, here is an example of one of my calls;
[Code]....
[OperationContract]
View 1 Replies
Apr 6, 2010
I have been struggling to get file downloads working for some time now. Files that are a few Mb or less don't seem to cause a problem but larger files stop after a minute or so. I have tried two methods so far and neither seems to work any better than the other.
First Method:
[Code]....
Second Method:
[Code]....
I am well aware that the default timeout for a script is 90 seconds, so in the page load event I alter this to 10000 seconds for both the above examples.
[Code]....
[Code]....
This makes absolutely no difference - and besides this the download does not necessarily stop after 90 seconds - it is usually somewhere around 90 seconds but I have witnessed it stopping after 120 seconds. I don't have anything set up in my web.config file for this as I don't want to set large timeout values for the rest of my site. Does anyone have what I need to do to get my files to download and not stop after a minute or two?
View 5 Replies
Feb 5, 2010
At my place of work, we have an ASP.NET page that uses the following code to perform a file download. We use this rather than Request.TransmitFile() because the file is coming directly from a zip archive.
private void DownloadStream(Stream stream)
{
int bytesRead;
int chunkSize = 1048576; //1MB
byte[] readBuffer = new byte[chunkSize];
while ( (bytesRead = stream.Read(readBuffer, 0, readBuffer.Length)) > 0)
{
if (!Response.IsClientConnected)
break;
Response.OutputStream.Write(readBuffer, 0, bytesRead);
Response.Flush();
}
}
I'm trying to determine a reasonable value for the httpRuntime executionTimeout setting. The files being sent range up to 1GB in size, and some of our users have very slow pipes* to the webserver (think 64K lines). We don't want these users to experience connection resets. However, we want to keep a reasonable timeout value for the rest of the site.
Is there a way to define an executionTimeout setting only for this specific page (or even make it unlimited for that page specifically)? What's the recommended approach? I know we'd probably be better off using a totally different method to serve the files (e.g. FTP), but we don't have the freedom to make that choice. All we can do is modify the code for the site.
Also, I do think these downloads should be compressed before sending, but that's another matter.
*Off-topic question: Is "slow pipe" an annoyingly mixed metaphor? I should probably say "small pipe" instead, but that sounds strange to me in this context. Opinions?
View 1 Replies
Jul 26, 2010
I was able to download files from our server all types with out no problem,
when the download process starts the app asks open , save or cancel.
when i click open or save, i can see the progress bar starting from 0% onwards and used to go smoothly at 100kbps.
Since yesterday, it is hanging at 0% as if freeze, and all of a sudden the file gets open after 2 or 3 minutes.
this seems like something to do with IE i guess.
are there any security or any thing on client machine , which is giving me a feeling like a firewall or something.
View 1 Replies
May 7, 2010
I am using Microsoft's MVC design pattern and I have a method in my controller, which sets the data source of a gridview. Whilst I can bind all the other values in the gridview, I am stuck setting 4 hyperlinks. The hyperlinks need to work in the explanation given in the link below: [URL]for forcing downloads to keep the location of where files are saved to private, which I want set in the controller.
To fully explain what I am doing, in my controller for the gridview, I am setting the gridview's data source using ICollection, which is an object containing results from a query. From this collection, I extract a value which has the name of a folder which contains a number files. So, what I have done is to cast my collection to a object, to get folder name and then use a foreach loop to get each folder name. Then to get the files inside each folder, I use Directory.GetFiles, which returns a string array - I wrote string[] files = Directory.GetFiles(ConfigurationManager.appsettings["filepath"]+folderName); . I have set 4 properties for each Hyperlink I want to set.
It is at this point where I am stuck, because even though I can get to the files, I am unable to set the Hyperlinks to these files. Each time I try an set the NavigateUrl property, I get the error message Object not set to an instance of an object. Plus, I have two other issues to resolve:1) Even though there are 4 hyperlinks, not every hyperlink will be set. In other words, if there are only two files in the folder, I only want to set the appropriate hyperlinks. So, how can I iterate through the string array, and get each value inside the array to do a check?2) When I set my Hyperlinks in my controller, how do I simply pass the file and keep the file's actual storage location hidden as given in the link [URL]
View 5 Replies
Mar 26, 2010
Create a report to show the number of downloads per category. Order it by the number of downloads. Group it by category. The group header should contain total no. of downloads, which should be expandable to show actual no. of downloads sub category wise. The sub categories should also show the total no. of downloads for that subcategory. Each subcategory should be expandable and show the download numbers per product..
i have imlemented matrix for it so no need to insert group additionaly.i am facing problem in 'Order it by the number of downloads' when ever i use aggregate funtion for sorting it gives error like sort expression out of matrix
View 1 Replies
Jan 6, 2010
Do you know if it's possible to add a button in a gridview that when clicked, downloads a document listed in the gridview to a specific location, and then opens the document that was just downloaded? (It's too many steps for the users to right-click, do a file save as, save the document, and then open it). So, I need to accomplish a lot with this little button. Also, I'd need to specify a directory on the C drive to save it too.
View 12 Replies
Jun 8, 2010
We have a web application that runs on a WIndows Server 2008 64 bits machine. The app's ApplicationPool is running under the ApplicationPoolIdentity and configured for .net 2 and Classic pipeline mode.
This works fine up to the moment that XmlSerialization requires creation of Serializer assemblies where MEF is being used to create a collection of knowntypes.
To remedy this I was hoping that granting the ApplicationPoolIdentity rights to the ASP.Net Temporary Files directory would be enough, but alas..
What I did was the run the following command from a cmd prompt:
icacls "c:windowsmicrosoft.netframework64v2.0.50727Temporary ASP.NET Files" /grant "IIS AppPoolMyAppPool":(M)
Obviously this did not work, otherwise you would not be reading this :)
Strange thing is that whenever I grant the Users or even more specific, the Authenticated Users Group those permissions, it works. What's weird as well (in my eyes) is that before I started granting access the ApplicationPoolIdentity was already a member of IIS_IUSRS which does have Modify rights for the temporary asp files directory.
And now I'm left wondering why this situation requires Modify rights for the Authenticated Users group. I thought it could be because the apppool account was missing additional rights (googling for this returned some results, so I tried those), but granting the ApplicationPoolIdentity modification rights to the WindowsTemp directory and/or the application directory itself did not fix it.
For now we have a workaround, but I hate that I don't know what is exactly going on here, so I was hoping any of you guys could shed some light on this.
View 3 Replies
Mar 9, 2010
I'm using the Aspnet_regsql.exe for roles in my app. I want to grant someone temporary permission to access some of the pages in this site for a limited amount of time. I would like to grant a user permission for a couple days or so, then revoke these permissions. Or create a user with full permissions that would only last a couple days.
Is there a way to do this?
View 4 Replies
Mar 4, 2011
i want to create a temporary zip file under iis, so i can access it by an http request. in addition i want to delete this file after download it. N.B. : i'm using asp.net 3.5 framework.
View 1 Replies
Jun 29, 2010
I have to show the pdf files ,by the same time it should not get sotred in Temporary Files in the client Pc. Is there any control for this requriment.
View 5 Replies
Dec 16, 2010
I want to save a picture from my computer in database on the server. I want to show this picture before I save it in database . I used this code.
[Code]....
The picture is saved on the server. I do not want this.
View 5 Replies
Jun 24, 2010
my aspx web app needs to allow clients to load files (excel files) to some place in the server, to be able to open and read content via OLEDB immediataly after upload. Are there any "best practices" or suggestions about location, naming and security of temporary files folders? Also I need these files to be automatically deleted after use, I would like to be sure they always are. VS 2008/ .net 3.5 framework/ Windows server 2003 and 2008
View 2 Replies
Jan 6, 2010
Recently I was working on displaying workflow diagram images in our web application. I managed to use the rehosted WF designer and create images on-the-fly on the server, but imagining how large the workflow diagrams can very quickly become, I wanted to give a better user experience by using some ajax control for displaying images that would support zoom & pan functionality.
I happened to come across the website of seadragon, which seems to be just an amazing piece of work that I could use. There is just one disadvantage - in order to use their library for generating deep zoom versions of images I have to use the file structure on a server. Because of the temporary nature of the images I am using (workflow diagrams with progress indicators), it is important to not only be able to create such images but also to get rid of them after some time.
Now the question is how can I best ensure that the temporary image files and the folder hierarchy can be created on a server (ASP.NET web app), and later cleaned up. I was thinking of using the cache functionality and by the expiration of the cache item delete the corresponding image folder hierarchy, or simply in the Application_Start and Application_End of Global.asax delete the content of the whole temporary folder, but I'm not really sure whether this is a good idea and whether there are some security restrictions or file-system-related troubles. What do you think ?
View 3 Replies
Sep 16, 2010
Can i make a bulk insert into the temporary table by calling a stored procedure from the front end.
Am using BulkCopy command to write data to server
bulkcopy.destinationtablename="#TempTableName";(here i want to give the tempoary tablename which is created in the database)
bulkcopy.Writetoserver(datatable dt);
How to do this?
(OR)
Is there anyway to create a temporary table from C# and set the destinationtable as #TemPTableName and then write to server.
View 1 Replies