view documents in browser without downloading - asp.net

I have an asp.net site which is essentially a repository of documents uploaded by users.
I would like visitors to the site to be able to view any of these documents in some sort of "document viewer" without ever being able to download the file to their local system.
Documents are all Office files and PDFs.
Please advise if there are open source or commercial "document viewer" controls that you have used and would recommend.
EDIT: I own the server and can load any server components. Unfortunately i can't use flash based viewers as it must be compatible accross all browsers and devices.

We had a similar requirement and we converted all office docs and PDF files to SWF files using Print2Flash (http://print2flash.com/) and display them in the browser. There are both free and commercial editions of print2flash.

Just answering for anyone else looking up this info.
I ended up going with Adeptol's Ajax Document Viewer which works really well.

Related

Open InDesign in/from Browser with the ability to save the document back

Microsoft Word and Microsoft Excel have the ability to open documents by URI (for instance pointing to a web server) and to save them back after they got edited. This functionality can also be invoked by a browser. This, for instance, is done in products like Atlassian Confluence and Microsoft Sharepoint.
Is it possible to open an Adobe InDesign (while InDesign is installed on the computer, ofc) document in a (similar) way like described above?
This means:
Invoke InDesign (embedded in browser or as separate application), but by the browser.
Open a document by specifying an URI (for instance on a web server), also by the browser.
After close or when the user presses save, InDesign will PUT or POST the document back to the URI. (Or use an alike way.)
The short answer is no.
You can build a system with web front-end and InDesign Server as a back-end. This will achieve the functionality you describe and user will not need a local copy of InDesign.
Another, simpler(and cheaper) option is to use one of the cloud services, like dropbox, or Adobe Creative Cloud with a shared folder and share the files for collaboration.
May be, there is a plugin capable of doing something similar, but I did not come across anything like this. So, another option is to build a plugin, although it will have to be distributed to every end-user and you will need your web service to server the files.

Desktop file uploader for a website

I'm writing an upload functionality for a website (Javascript, ASP.NET). The requirement is that the user would upload a large folder of multiple files (~20k files having ~3GB in total). We would like to save the user from most of the trouble with reuploading failed files.
I've seen that some websites allow you to download desktop app for uploading and downloading files. I'd like to write something similar. I've been doing some research on the internet but I can only find JavaScript/Flash/etc. web solutions for that.
Do you know any tutorials on how to do it? Or maybe some article which explains possible ways of implementing that. Do you think my approach is good or should I invest some time in web solution instead of desktop app?
You can use dropzone. İt seems useful to file upload functionalities

Edit in Word using Wopi and Office Online Server

I am working on a project where we have implemented content management with word.
We have some word files, that are being processed using OpenXML.
Users can open those files in two ways - download a copy or edit online. Online editing is implemented using Office Online Server and custom Wopi server, built based on this example.
Editing online works fine, but Word Online has limited features compared to desktop Word.
I am trying to build a functionality similar to Sharepoint, where user has 2 options - Edit in Word, Edit in Browser:
In Office Online Server I don't have such options, I can only edit in browser:
Even in edit mode Sharepoint provides a link for Edit in Word:
whereas Office Online Server does not have it:
My question is how it is implemented in Sharepoint?
In other words, am I missing something in Wopi server to enable it or Microsoft has built this functionality into Sharepoint, without the need of Wopi and/or OWA?
Any ideas would be appreciated!
To enable "Edit in Word" in Office Online Server when using a WOPI handler, you need to set the ClientUrl property in CheckFileInfo (and CheckFolderInfo if you implement that). ClientUrl should be set to a direct editable link for the document file, either WebDAV or FSHTTP, but you could even use a file:// link for testing.
When you set the ClientUrl property, Office Online behavior becomes very similar to OneDrive/SharePoint Online. The current WOPI documentation is a bit outdated, it lists this property under Unused and future properties, but there is nothing secret about it. I asked dochelp#microsoft.com, that is Microsoft's "Open Specifications Support" mailbox, mentioned in many of their presentations and publications about WOPI and Office Online.
Word Online Reading View:
Word Online Editing View after clicking OPEN IN WORD:
I'm pretty sure that the functionality (Edit in Word) is not part of the Office Online Server and that it doesn't utilize the WOPI protocol. In the previous versions of SharePoint, it was implemented using WebDAV and I guess this hasn't changed. If you want to support opening/editing/saving you should implement your own WebDAV server. You can save a lot of time if you use a pre-built server like one from ITHit. They also have a JS framework to support opening files from browser.
If you want a cheap, cross-browser alternative that will just invoke the editing apps I suggest you have a look at Office URIs.

Is source code off an app avilble for the user?

If i write an desktop app in tidesdk or tide kit will it be possible for users to read my source code, just like from ordinary web page or not ?
Yes, if the user knows where to look. It's not viewable by right clicking the window and selecting source, but if they browse to the install directory, all the HTML / related files are there in broad daylight.
You could come up with some strategies to protect them, either using encryption or just providing a bootstrapper application which downloads the rest of the source from a server on startup or something like that...but if it's a huge concern of yours you're probably better off using a different platform.

asp.net uploading files over a Gig in file size?

Is there some open source file upload (application) solution for a scenario like this? We have users who might want to upload really giant files, could be several GB's in file size in fact, and it seems like a regular file upload textbox isn't going to be a good choice here due to timeouts, etc...
Thanks for any advice...
Jon Galloway has a good article here: Large file uploads in ASP.NET
He mentions NeatUpload (which is free, and posted under the LGPL, a business-friendly open source license) in the article, and the link to the codeplex page: http://neatupload.codeplex.com/
Project Description
The NeatUpload ™ ASP.NET component allows developers to stream
uploaded files to storage (filesystem or database) and allows users to
monitor upload progress. It is open source and works under Mono's
XSP/mod_mono as well as Microsoft's ASP.NET implementation.
It features several custom controls, including:
MultiFile allows all users to select multiple files to upload and
allows Flash 8+ users to select multiple files from a single file
selection dialog.
ProgressBar displays the upload progress either inline or in a popup.
UnloadConfirmer prevents users from accidentally interrupting an upload by leaving the page.
Features
Works in web gardens and web farms.
Works under medium trust environments when installed in the GAC.
Works under Mono's XSP/mod_mono and Microsoft's ASP.NET 1.1 or higher.
Easy to install and use. Add the UploadHttpModule to the section of your Web.config
and drag-and-drop the controls using the Visual Studios Web Forms
Designer.
ProgressBar control can display processing progress in
addition to upload progress.
ProgressBar control uses AJAX-style
refreshless updates on modern browsers when JavaScript is available,
but also allows users without JavaScript to see upload progress.
Allows customization through styles, custom progress display pages,
UploadStorageProviders, and UploadStateStoreProviders, and provides an
API for creating your own file upload and progress controls.
Falls back to using ASP.NET's HttpPostedFile if the NeatUpload UploadHttpModule is not present. This makes it easy to remove the
HttpModule if for some reason it causes problems.
Streams uploads directly to storage. This conserves server memory, allows larger uploads, and helps prevent Denial of Service attacks.
Removes uploaded files when an error occurs. This helps prevent disk space leakage.
Licensed under the Lesser General Public License (LGPL), a business-friendly open source license.

Resources