Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Διάθεση αρχείων σε χρήστες

Îåêßíçóå áðü ôï ìÝëïò Ευθύμης Δημόπουλος. Τελευταία δημοσίευση από το μέλος Τάσκος Γιώργος στις 18-09-2009, 14:24. Υπάρχουν 9 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-09-2009, 12:44 53775

    Διάθεση αρχείων σε χρήστες

    Καλημέρα σε όλους.
    Αντιμετωπίζω τον εξής προβληματισμό:

    Αυτό που θέλω να κάνω είναι να πουλάω κάποια αρχεία (pdf, doc, xls κ.λπ) μέσα από ένα web site.
    Το ηλεκτρονικό κατάστημα το έχω.

    Το θέμα είναι πώς θα πρέπει να "δίνονται" τα αρχεία που κάποιος έχει αγοράσει;
    Δηλαδή έστω ο πελάτης αγοράζει κάποιο ηλεκτρονικό αρχείο. Πληρώνει. Μετά; Πώς το αποκτά; του δίνω direct link (μπααααα, δε νομιζω!), πρέπει να μπει με κάποιους κωδικούς σε μια ενότητα του web site και αφού γίνει registered να μπορέσει να το κατεβάσει; μέσω email; Τα αρχεία τα αποθηκεύω σε κάποιο directory;

    Εσείς πώς θα το χειριζόσασταν;
    Δημοσίευση στην κατηγορία:
  •  17-09-2009, 13:30 53777 σε απάντηση της 53775

    Απ: Διάθεση αρχείων σε χρήστες

    Το ποιο γρηγόρο και εύκολο πράγμα που μου έρχεται στο μυαλό είναι να έχεις compressed τα αρχεία στο web site και κλειδωμένα με ένα κωδικό. Εφοσόν κάποιος πληρώσει μπορείς να του στείλεις το password για να τα ξεκλειδώσει. 
    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  17-09-2009, 13:58 53778 σε απάντηση της 53777

    Απ: Διάθεση αρχείων σε χρήστες

    Σε ευχαριστώ αλλά τα αρχεία (σαν προϊόντα) δε θα ήθελα να τα έχω "χύμα" σε ένα directory. Θέλω όσο το δυνατόν να είναι προστατευμένα να μη μπορει κάποιος π.χ. με ένα directory listing να τα κατεβάσει αφού και κλειδωμένα να είναι κάποιος με λίγο googling μπορεί να τα ανοίξει.

    Κάπου googliζοντας βρήκα σαν λύση τη δημιουργία ενός directory το οποίο να είναι password protected ώστε να ανεβάσω τα αρχεία μου και μόλις ο πελάτης ολοκληρώσει τη παραγγελία του και τη πληρωμή με επιτυχία να του στέλνω (automated) ένα μοναδικό url για να μπορεί να τα "κατεβάσει". Επίσης θα μπορώ να ελέγχω πότε το link λήγει (expired) χρονικά είτε μετά απο συγκεκριμμένο αριθμό downloads.

    καμμία άλλη ιδέα;
  •  17-09-2009, 14:28 53780 σε απάντηση της 53778

    Απ: Διάθεση αρχείων σε χρήστες

    Βασικα και λω αυτό θα σου πρότεινα, να φτιάξεις ένα μηχανισμό membership ο οποίος θα διαχειρίζεται αυτο που θες να πετύχεις. Εφοσον καποιος πληρώσει τότε και μονο να μπορεί να δει τα αρχεία. Το password πάνω σε αυτά μπορείς να το βάλεις σαν ένα extra επίπεδο προστασίας. Η όλη ιδέα είναι να υπάρχει ελεγχόμενη προσβαση στο αρχείο, είτε σε επίπεδο χρήστη, είτε σε επίπεδο αρχείου είτε και στα δύο. Φυσικά, εφόσον κάποιος ανοίξει το αρχείο και το στείλει... στα torrents, εκεί δεν σε σώζει τίποτα Smile !
    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  17-09-2009, 14:41 53781 σε απάντηση της 53775

    Απ: Διάθεση αρχείων σε χρήστες

    Με την βοήθεια ενός HttpHandler μπορείς να ελέγξεις ποιος θέλει να κατεβάσει ένα αρχείο από το site σου. Δες εδώ πως...


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  17-09-2009, 15:00 53782 σε απάντηση της 53778

    Απ: Διάθεση αρχείων σε χρήστες

    Εγώ χρησιμοποιώ αυτή τη συνάρτηση:

        Sub DownloadFile(ByVal FilePath As String)
            Dim file As System.IO.FileInfo = New System.IO.FileInfo(FilePath)
            If file.Exists Then
                Response.Clear()
                Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name)
                Response.AddHeader("Content-Length", file.Length.ToString())
                Response.ContentType = "application/octet-stream"
                Response.WriteFile(file.FullName)
                Response.End()
                Response.Close()
                file = Nothing
            End If
        End Sub
    Το καλό είναι ότι παίζει και με αρχεία που βρίσκονται στον ~/App_Data φάκελο. Οπότε βρίσκονται σε private χώρο και με στατικό link δεν μπορεί να το πάρει κανένας. Στην ουσία ελέγχεις εσύ ποιο αρχείο θα δώσεις και σε ποιον. 


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  17-09-2009, 15:36 53785 σε απάντηση της 53780

    Απ: Διάθεση αρχείων σε χρήστες

    Η πιό ασφαλής λύση σε αυτές τις καταστάσεις, κατά τη δική μου άποψη, είναι το repository των αρχείων να βρίσκεται κάπου εκτός web folders. Από εκεί, μια εφαρμογή θα μπορούσε να παίρνει τα αρχεία και να τα κάνει stream στο χρήστη, εφόσον αυτός έχει πληρώσει για να τα κατεβάσει. Ετσι μάλιστα θα μπορούσες και να ξαναδίνεις αρχεία (με περιορισμό στον αριθμό των downloads, αν το επιθυμείς) ακόμα και αν ο χρήστης τα έχει ήδη κατεβάσει, μια και θα έχεις εσύ τον απόλυτο έλεγχο του τι "χτυπάει" ο χρήστης.

    Απαξ και ο χρήστης λάβει το αρχείο, δεν έχεις έλεγχο στο τι μπορεί να κάνει και αν θα το στείλει ή οχι στα torrents ή αλλού. Στα pdf, που είναι readonly, ορισμένοι (οπως π.χ. η Wrox με τα Wrox Blox - μικρά ebooks σε τιμές κάτω των 10$ που κατεβάζεις από το site τους) βάζουν τα στοιχεία σου στο footer κάθε σελίδας έτσι ωστε, ακόμα και αν το μοιράσεις σε p2p, όλοι να γνωριζουν από ποιόν προήλθε το original. Αυτό προϋποθέτει βέβαια και την ύπαρξη εξειδικευμένης εφαρμογής που θα "κατασκευάζει" το pdf on the fly για κάθε πελάτη (νομίζω η aspose έχει μια τέτοια λύση).



    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  17-09-2009, 15:48 53788 σε απάντηση της 53785

    Απ: Διάθεση αρχείων σε χρήστες

    Αν θέλεις να στηρίξεις του δουλειά σου σε αυτό και δεν ψάχνεις μια γρήγορη λύση διάβασε το άρθρο που δίνω παραπάνω. Ο Miguel Castro εξηγεί διάφορες εναλλακτικές. Λύση του tasos είναι καλή, αλλά με τον HttpHandler κερδίζεις ως προς το ότι είναι περισσότερο transparent. Τα αρχεία σου επίσης βρίσκονται σε φάκελο εκτός των web folders (όπως και στη λύση του tasos και όπως προτείνει και ο Σωτήρης), ενώ το request είναι πολύ φυσικό: http://www.myserver.com/myapp/files/myfile.zip. Απλά έχεις τη δυνατότητα με τον κώδικα που θα γράψεις στον HttpHandler να ελέγξεις ότι θέλεις (αν ο χρήστης είναι registered, πόσε φορές κατέβασε το αρχείο κλπ.). Ο κώδικας που θα γράψεις τέλος είναι αρκετά λίγος και απλός.


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  18-09-2009, 11:37 53813 σε απάντηση της 53781

    Απ: Διάθεση αρχείων σε χρήστες

    Δημήτρη φαίνεται να βοηθάει αρκετά αυτό το άρθρο, το μελετάω από χτες και θα επανέλθω σύντομα (όταν θα έχω σχηματίσει άποψη...) Smile
  •  18-09-2009, 14:24 53817 σε απάντηση της 53813

    Απ: Διάθεση αρχείων σε χρήστες

    Ειναι πολύ δυνατό, πως να μην είναι, o Miguel Castro είναι τρομερός. Δες επίσης και του Stahl, το βγάζει δεξία σαν συντόμευση.



Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems