Έχω ένα αντικείμενο μεταφόρτωσης αρχείων στη σελίδα μου:
<input type="file" ID="fileSelect" />
με τα ακόλουθα αρχεία excel στην επιφάνεια εργασίας μου:
- file1.xls
- file.csv
Θέλω η μεταφόρτωση αρχείων να εμφανίζει ΜΟΝΟ τα αρχεία .xlsx
, .xls
, & .csv
.
Χρησιμοποιώντας το χαρακτηριστικό accept
, βρήκα ότι αυτοί οι τύποι περιεχομένου φρόντισαν για τις επεκτάσεις .xlsx
& .xls
...
accept
= application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.XLSX)
accept
= application/vnd.ms-excel (.XLS)
Ωστόσο, δεν μπορώ να βρω τον σωστό τύπο περιεχομένου για ένα αρχείο CSV του Excel! Καμία πρόταση;
ΠΑΡΑΔΕΙΓΜΑ: <
>,Λοιπόν, αυτό είναι ντροπιαστικό... Βρήκα τη λύση που έψαχνα και δεν θα μπορούσε να είναι απλούστερη. Χρησιμοποίησα τον ακόλουθο κώδικα για να έχω το επιθυμητό αποτέλεσμα. Ελπίζω αυτό να βοηθήσει κάποιον στο μέλλον. Σας ευχαριστώ όλους για τη βοήθειά σας.
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
Για αρχεία CSV (.csv), χρησιμοποιήστε: <br/>,
<input type="file" accept=".csv" />
Για αρχεία Excel 97-2003 (.xls), χρησιμοποιήστε: <br/>,
<input type="file" accept="application/vnd.ms-excel" />
Για Αρχεία Excel 2007+ (.xlsx), χρησιμοποιήστε: <br/>,
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
Για Αρχεία κειμένου (.txt) χρησιμοποιήστε: <br/>,
<input type="file" accept="text/plain" />
Για Αρχεία εικόνων (.png/.jpg/κλπ), χρησιμοποιήστε: <br/>,
<input type="file" accept="image/*" />
Για Αρχεία HTML (.htm,.html), χρησιμοποιήστε:<br/>,
<input type="file" accept="text/html" />
Για Αρχεία βίντεο (.avi, .mpg, .mpeg, .mp4), χρησιμοποιήστε:
<input type="file" accept="video/*" />
Για Αρχεία ήχου (.mp3, .wav, κ.λπ.), χρησιμοποιήστε:
<input type="file" accept="audio/*" />
<input type="file" accept=".pdf" />
DEMO:
<hr/>,
ΣΗΜΕΙΩΣΗ:
Εάν προσπαθείτε να εμφανίσετε αρχεία CSV του Excel (.csv
), μην ΔΕΝ χρησιμοποιήσετε:
text/csv
application/csv
text/comma-separated-values
(λειτουργεί μόνο στο Opera).Αν προσπαθείτε να εμφανίσετε έναν συγκεκριμένο τύπο αρχείου (για παράδειγμα, ένα WAV
ή PDF
), τότε αυτό θα λειτουργεί σχεδόν πάντα...
<input type="file" accept=".FILETYPE" />
Dom αυτή η ιδιότητα είναι πολύ παλιά και δεν γίνεται αποδεκτή στους σύγχρονους browsers από όσο γνωρίζω, Αλλά εδώ είναι μια εναλλακτική λύση σε αυτό, Δοκιμάστε αυτό
<script type="text/javascript" language="javascript">
function checkfile(sender) {
var validExts = new Array(".xlsx", ".xls", ".csv");
var fileExt = sender.value;
fileExt = fileExt.substring(fileExt.lastIndexOf('.'));
if (validExts.indexOf(fileExt) < 0) {
alert("Invalid file selected, valid files are of " +
validExts.toString() + " types.");
return false;
}
else return true;
}
</script>
<input type="file" id="file" onchange="checkfile(this);" />
Υποθέτω ότι'θα σας βοηθήσει φυσικά μπορείτε να αλλάξετε αυτό το σενάριο σύμφωνα με τις ανάγκες σας.
Έχω χρησιμοποιήσει το "text/comma-separated-values" για τον τύπο mime CSV στο χαρακτηριστικό accept και λειτουργεί μια χαρά στο Opera. Δοκίμασα το text/csv
χωρίς τύχη.
Κάποιοι άλλοι MIME-Types για CSV αν οι προτεινόμενοι δεν λειτουργούν: