Ηλεκτρονικό Πρωτόκολλο Σχολείου

Ξεκίνησε από Γεώργιος Θεοδώρου, 27 Ιαν 2017, 08:02:03 ΜΜ

« προηγούμενο - επόμενο »

Πείτε μας που έχετε στήσει το Ηλεκτρονικό πρωτόκολλο

webhost.sch.gr
2 (11.8%)
cloud άλλο
0 (0%)
Η/Υ με win+xampp
7 (41.2%)
Η/Υ με win+wamp
0 (0%)
Η/Υ με Linux+xampp
0 (0%)
Η/Υ με Linux+lamp
7 (41.2%)
χωρίς RAID
2 (11.8%)
RAID1
1 (5.9%)
NAS
2 (11.8%)

Σύνολο ψηφοφόρων: 17

Δημήτρης Κανάς

Γιώργο και πάλι έδωσες και γρήγορα μάλιστα τα φώτα σου... και οι δύο τρόποι δουλεύουν.
Powered by Elxis : LabSchool.mysch.gr

Γιάννης Γαϊδαρτζής

Καλημέρα!
Σήμερα πήγα να επισυνάψω ένα αρχείο και έλαβα την απάντηση "Λάθος!!! ...... βλέπε συνημμένο.
Τι να ελέγξω;
Πρώην ΚΕΠΛΗΝΕΤ

Γεώργιος Θεοδώρου

#122
Αυτό το κάνει μόνο με ένα συγκεκριμένο αρχείο;

σκέψη 1η

Ρίξε μια ματιά μήπως το όνομα αρχείου περιέχει απαγορευμένους χαρακτήρες
όπως περιγράφεται στο παρακάτω απόσπασμα από την ιστοσελίδα:
https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file



Use any character in the current code page for a name, including Unicode characters and characters in the extended character set (128–255), except for the following:

    The following reserved characters:
        < (less than)
        > (greater than)
        : (colon)
        " (double quote)
        / (forward slash)
        \ (backslash)
        | (vertical bar or pipe)
        ? (question mark)
        * (asterisk)


σκέψη 2η

Μήπως υπερβαίνει το μέγεθος που έχει οριστεί στην php;

Γιάννης Γαϊδαρτζής

Κάτι με το μήκος του ονόματος παίζει. Υπάρχει όριο;
Πρώην ΚΕΠΛΗΝΕΤ

bugman

Μια ιδέα θα ρίξω εδώ:

Αν υπάρχει ς στο όνομα τότε δεν γυρίζει σε κεφαλαίο Σ, παραμένει ς από Windows 7 και πάνω. Αν γυρίσει το ς σε σ τότε διορθώνει το πρόβλημα!

Γεώργιος Θεοδώρου

Στείλε μου το αρχείο

Αν έχει απόρρητο περιεχόμενο σβήσε ότι μη επιτρεπτό


να του ρίξω μια ματιά

Γεώργιος Θεοδώρου

#126
Παράθεση από: igaid στις 19 Μαΐου 2020, 01:23:01 ΜΜ
Κάτι με το μήκος του ονόματος παίζει. Υπάρχει όριο;

Διαβάζοντας εδώ βλέπουμε το όριο

windows

Maximum file name length    255 Unicode characters

https://docs.microsoft.com/de-de/windows/win32/fileio/filesystem-functionality-comparison#limits


τα ίδια και στο linux 255 chars (bytes)


https://stackoverflow.com/questions/34980895/extending-ext4-file-systems-filename-size-limit-to-1012-characters


Μένει να επιβεβαιωθεί ότι το συγκεκριμμένο όνομα είναι πάνω από το όριο.




Σημείωση: Το όνομα συντίθεται από ΑΠ-εεεεμμηη_filename
Η σκέψη πίσω από αυτό είναι να μπορείς εύκολα να ξέρεις ένα αρχείο σε ποιο πρωτόκολλο και ημερομηνία αντιστοιχεί

ΑΠ = Αρ. Πρωτοκόλλου
εεεεμμηη = Ημερομηνία: 4ψήφιο έτος 2ψήφιος μήνας 2ψήφια ημέρα

πχ:
38-20191227_ΕΝΗΜΕΡΩΤΙΚΟ  ΚΟΡΔΗ ΝΕΚΤΑΡΙΟΥ  ΓΙΑ ΤΙΣ ΤΕΛΕΥΤΑΙΕΣ ΕΚΠΑΙΔΕΥΤΙΚΕΣ ΕΞΕΛΙΞΕΙΣ.doc

'Αρα με  5ψήφιο  Αρ.Πρωτ. δεσμεύονται 15 χαρακτήρες για τα πρώτα ...

bugman

#127
Ισχύει το 260 maxpath, αλλά όχι στη unicode έκδοση.
To 260 αναφέρεται σε χαρακτήρες όχι σε bytes. Έτσι για κλήσεις unicode (2bytes κάθε χαρακτήρας) σε bytes είναι διπλάσιο!

Υπάρχει και το όριο στους 32767 χαρακτήρες (συνολικά μαζί με το όνομα αρχείου), αλλά πρέπει να υπάρχει στην αρχή το \\?\
Αυτό γίνεται σε VB6, αν χρησιμοποιήσουμε απευθείας το KERNEL32:
Declare Function CreateFile Lib "KERNEL32" Alias "CreateFileW" (ByVal lpFileName As Long, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long

Επίσης στη VB6 αν θέλω να ανοίξω το F$ το οποίο είναι σε UNICODE, με την Open, την δική της εντολή το μετατρέπω σε DosPath
Open GetDosPath(F$) For Binary Access Read As i

Private Declare Function GetShortPathName Lib "KERNEL32" Alias _
"GetShortPathNameW" (ByVal lpszLongPath As Long, _
ByVal lpszShortPath As Long, ByVal cchBuffer As Long) As Long

Public Function GetDosPath(LongPath As String) As String
Dim s As String
Dim i As Long
Dim PathLength As Long
        i = Len(LongPath) * 2 + 2
        s = String(1024, 0)
        PathLength = GetShortPathName(StrPtr(LongPath), StrPtr(s), i)
        GetDosPath = Left$(s, PathLength)
End Function


Η GetDosPath αν δεν υπάρχει το αρχείο γυρνάει κενό. Έτσι αν θέλω να φτιάξω ένα νέο αρχείο χρησιμοποιώ την  createfile του Kernel32.
Παίζει και σε Windows 64.

Με τον παραπάνω τρόπο μπορώ να έχω ότι χαρακτήρες θέλω, ακόμα και αραβικά.
Αυτό είναι το κανονικό path
c:\users\person\appdata\roaming\microsoft\windows\printer shortcuts\
Και αυτό το shortpath, δείτε ότι βάζει ~1 με αυτό το τρόπο κόβει το όνομα.
c:\users\person\appdata\roaming\MICROS~1\windows\PRINTE~1\


Γιάννης Γαϊδαρτζής

#128
Το παρακάτω αρχείο δεν το δέχεται. Όταν το μετονομάζω σε σκέτο Δελτίο.pdf  το αποθηκεύει. Δοκίμασα να αφαιρέσω τα κενά και δεν άλλαξε τίποτα. Καμιά ιδέα;
Τώρα παρατήρησα ότι το αρχείο το αποθηκεύει στο  C:\protocol\storage\app\arxeio\Φ.1 αλλά το μήνυμα του λάθος το εμφανίζει και δεν φαίνεται το αρχείο στο πρωτόκολλο.
Πρώην ΚΕΠΛΗΝΕΤ

alkisg

Δεν ξέρω αν μπορεί να χρησιμεύσει κάπου, αλλά ας το πετάξω σαν ιδέα... το SMF forum εσωτερικά περνάει τα ονόματα των αρχείων από συνάρτηση md5sum, π.χ. το 'ΔΕΛΤΙΟ ΤΥΠΟΥ ΟΡΓΑΝΙΚΩΝ ΚΕΝΩΝ 2019.2020_signed.pdf' γίνεται 27369b5b702bbae4bea3d1ced4a1f6e3, και στη συνέχεια αποθηκεύει στη βάση το όνομα αρχείου, ενώ στο δίσκο κάτι σαν $database_id-$md5sum (ή θα μπορούσε να γίνει ΑΠ-εεεεμμηη_$md5sum). Ένα πλεονέκτημα είναι ότι δεν υπάρχουν πια περιορισμοί στα ονόματα των αρχείων, ενώ ένα μειονέκτημα το ότι πλέον δεν θα φαίνονται τα ονόματά τους μέσα από απλό file manager.

Γεώργιος Θεοδώρου

Πρόχειρη απάντηση γιατί το ψάχνω:

Χτυπάει το γράμμα Π γιατί το λογίζει σαν τη σταθερά (pi) π !!!!!!!!!

Αν κάνουμε το όνομα "ΔΕΛΤΙΟ ΤΥ-ΟΥ ΟΡΓΑΝΙΚΩΝ ΚΕΝΩΝ 2019.2020_signed.pdf"  το περνάει !!!

Θα μελετήσω πως πρεπει να γίνει escape στην php

bugman

Παρατήρησα ότι έχει δύο τέλειες το όνομα.
Παλαιότερα για να ξεμπερδεύω με κάτι τέτοια έβαζα μια συνάρτηση που έπαιρνε το όνομα και άλλαζε επιλεγμένους χαρακτήρες με παύλες. Έτσι το όνομα αφενός δεν θα έχει πρόβλημα και αφετέρου θα διαβάζεται.
Η χρήση κωδικοποίησης MD5 δεν βολεύει.

bugman

#132
Συγνώμη αυτό με το Π που γυρίζει σε αριθμό, στα καλά καθούμενα, δεν έχει παίξει σε άλλα ονόματα που έχουν το Π;
Δες εδώ σχετικά με το string interpolation.
https://phppot.com/php/variable-interpolation-in-php/

Εδώ οι μεταβλητές έχουν το $ σαν πρώτο γράμμα. Δεν εξηγείται πώς το Π γίνεται αριθμός.

Γεώργιος Θεοδώρου

Παράθεση από: igaid στις 20 Μαΐου 2020, 08:21:44 ΠΜ
Το παρακάτω αρχείο δεν το δέχεται. Όταν το μετονομάζω σε σκέτο Δελτίο.pdf  το αποθηκεύει. Δοκίμασα να αφαιρέσω τα κενά και δεν άλλαξε τίποτα. Καμιά ιδέα;
Τώρα παρατήρησα ότι το αρχείο το αποθηκεύει στο  C:\protocol\storage\app\arxeio\Φ.1 αλλά το μήνυμα του λάθος το εμφανίζει και δεν φαίνεται το αρχείο στο πρωτόκολλο.

Επιβεβαιώνω ότι το πρόβλημα είναι στην καταχώριση του ονόματος στη ΒΔ και
όχι στο σύστημα αρχείων. Το αρχείο αποθηκεύεται κανονικά

Θα το δω ...

bugman

Δες μήπως αφαιρείται η επέκταση αρχείου (τα τρια γράμματα) και μετά καταχωρεί στη βάση. Ενδέχεται λόγω της δεύτερης τελείας να αποκόπτει μεγαλύτερο κομμάτι. Αυτό συνήθως γίνεται όταν υπάρχει λάθος αναζήτηση, από αριστερά ενώ πρέπει να γίνει από δεξιά στο όνομα αρχείου.