0 votes
in SoSci Survey (dt.) by s115928 (170 points)

Hallo SoSci Survey-Team,

gibt es eine Möglichkeit mittels php-code um bei der Funktion 'Datei hochladen' von den Befragten hochgeladene Bilder automatisch zu skalieren / verkleinern?

Also: Befragter lädt Bild hoch (sehr groß) –> nächste Seite Bild soll angezeigt werden --> automatisch skalieren und verkleinern

Danke!

1 Answer

0 votes
by SoSci Survey (304k points)
selected by s115928
 
Best answer

Ja und nein. Was es bisher nicht gibt, ist eine Funktion, welche die Datei skalieren und dann in einer kleineren Version abspeichern würde.

Was man aber problemlos machen kann, ist dass man das Bild einfach nur verkleiner anzeigt:

<img src="..." style="max-width: 400px">

Ergänzung

Für eine Hochgeladene Datei könnte der PHP-Code dann wie folge aussehen:

html('
    <div>
        <img src="upload://'.value('AB01x02').'" style="max-width: 100%">
    </div>
');

Dafür kommt das bisher nicht in der Anleitung dokumentierte Präfix upload:// zum Einsatz, welches Zugriff auf hochgeladene Dateien erlaubt.

by s115928 (170 points)
Danke für die Antwort.

Ich schildere kurz warum das Bild skaliert werden soll. Da Sosci Survey keine Funktion ermöglicht Bilder zu speichern und in einem Folgefragebogen wiederzugeben habe ich die Datenbank "missbraucht". Das Bild wird per dbSet() als Base64 Encoded String gespeichert. Leider erreiche ich dabei schnell das Limit von 64 kB. Die Skalierung soll das Bild möglichst nah an dieses Limit bringen sodass dem Befragten später die best mögliche Qualität geboten wird.
In JavaScript habe ich bereits ein Variante probiert, dabei wird das Bild per Canvas resizt. Das ist jedoch Fehleranfällig und manchmal skaliert das Bild auf 0px.
Gibt es eine Funktion per PHP das Bild zu skalieren bzw. ist es möglich eine Library dafür zu nutzen?
by SoSci Survey (304k points)
> Da Sosci Survey keine Funktion ermöglicht Bilder zu speichern und in einem Folgefragebogen wiederzugeben

Doch, das ist möglich. Wenn Sie die Funktino zum Bilder-Upload verwenden, können Sie mit value() später im gleichen Interview (Stichwort: Unterbrecherseite) das Bild auch wieder anzeigen lassen:

html('<div><img src="upload://'.value('AB01x02').'" style="max-width: 100%"></div></div>');

Nein, das ist noch relativ neu und nicht nicht in der Anleitung dokumentiert :)

Und ja, im Prinzip könnte man auch einfach nur den Dateinamen, den value() liefert, in die Datenbank für Inhalte schreiben. Dann funktioniert das auch über mehrere Interviews hinweg.

> Gibt es eine Funktion per PHP das Bild zu skalieren bzw. ist es möglich eine Library dafür zu nutzen?

Prinzipiell könnte man die Upload-Frage in dieser Hinsicht schon ein wenig erweitern. Aber ehrlich gesagt scheint mir die o.g. Lösung sinnvoller. Zumal ich nicht begeistert bin, wenn die Datenbank für Inhalte plötzlich bis ans Limit mit Daten gefüllt wird.
by s115928 (170 points)
Hallo,

ich habe das Einbinden via "upload://" versucht, leider wird mir das Bild nicht angezeigt.
Es geschieht zwar etwas mit der img src, diese wird z.B. zu "index.php?i=PU59SDC9Y9Y9&file=1&rnd=3473" im HTML des Testbogen geändert, diese URL liefert aber einen 404er zurück, das Bild wird leider nicht angezeigt.
Mach ich noch etwas falsch?

Beste Grüße
by SoSci Survey (304k points)
Schwer zu sagen ... wäre es Ihnen vielleicht recht, wenn ich einen Administrator-Zugang zu dem Projekt anlege und mir das einmal ansehe? Wenn ja, dann müssten Sie mir bitte den Namen des Projekts mitteilen und wo im Fragebogen ich Frage und HTML/PHP-Code finde.
by s115928 (170 points)
Klar, sehr gerne! Das Projekt ist unter dem Namen: 'Social Media Likes & Self-esteem' gelistet.

Die Frage Bildupload ST08 ist auf Seite 2
Der Code ist auf Seite 4 & 5; funktioniert aber auf keiner der Seiten, d.h. das hochgeladene Bild wird nicht wieder angezeigt ...

Besten Dank!
by SoSci Survey (304k points)
Ich hatte ein JPG mit 27 KB hochgeladen und es wurde auf der nächste Seite dann korrekt angezeigt. Ich kann aber nicht ausschließen, dass große Bilder Ärger machen. Mit was für Bild-Dateien (Größe und Dateiformat) hatten Sie denn getestet?
by s115928 (170 points)
edited by s115928
Ich hatte ebenfalls mit JPG getestet, das eine war 3,1MB und das andere 373 KB groß. Mit Ihrem Hinweis habe ich es nochmal mit einem 33KB Bild probiert, das hat funktioniert, allerdings ist das insofern problematisch, da die Teilnehmer selbst aufgenommene Bilder hochladen sollen, die tendenziell vermutlich eher in die Richtung von 300KB und darüber hinaus gehen werden. Gibt es hierfür eine Alternative?
by SoSci Survey (304k points)
Mit einer 2,5 MB Datei konnte ich das Problem replizieren. Interessant. Das muss ich mir genauer ansehen ... könnte aber einen Tag dauern.
by SoSci Survey (304k points)
Da haben Sie in der neuen Funktion in der Tat noch einen Programmfehler gefunden. Sehr gut, dann können wir den gleich beheben ... hiermit passiert.
by s115928 (170 points)
Allergrößten Dank für die schnelle Hilfe! Es funktioniert jetzt. :)
by s115928 (170 points)
Ich hätte dazu noch eine Frage bzw. ein neues Problem...der Speicherplatz ist auf 64 KB begrenzt, die von den Teilnehmern hochgeladenen Dateien - Fotos vom Smartphone haben eine hohe Auflösung und sind entsprechend groß (3-4MB), somit können nur wenige Personen teilnehmen, bevor der Speicherplatz voll ist.

Ich brauche allerdings 180-200 Teilnehmer für meine Studie ..

Gibt es eine Möglichkeit, die hochgeladenen Dateien quasi beim 'Runterladen' auf meinen Speicherplatz zu verkleinern? Oder alternativ mehr Speicherplatz zu erhalten?
by SoSci Survey (304k points)
Speicherplatz ist auf www.soscisurvey.de leider knapp, weil dort mehrere zehntausend Projekte laufen. Und zwischendurch Dateien zu löschen ist gefährlich, weil man im Eifer des Gefechts dann doch mal die falschen erwischt.

Lösung 1: Sehen Sie unter https://www.soscisurvey.de/de/campus nach, ob Ihre Hochschule einen eigenen Befragungsserver betreibt. Wenn nicht, fragen Sie mal dort nach, ob die das nicht machen möchten.

Lösung 2: Wir können zum Preis von 49 € zzgl. USt. 1 GB zusätzlichen Speicherplatz auf unserem Server anbieten. Normalerweise nur auf dem Pro-Server s2survey.net, aber aktuell (wir müssen das immer von der Verfügbarkeit abhängig machen) besteht die Möglichkeit auch auf www.soscisurvey.de.
by s115928 (170 points)
Hm...ich verstehe, meine Universität ist leider nicht dabei und bis ein Verantwortlicher gefunden und geklärt ist, wer sich darum kümmert, ist meine Frist für die Abgabe vermutlich abgelaufen, aber ich leite es weiter für alle zukünftigen Studierenden...

Die hochgeladenen Dateien sind insofern nur für die Befragung notwendig, aber nicht zwingend für meine Auswertung. Ich hatte bisher nur gesehen, dass man ALLE Daten löschen kann, es klingt nun so, dass es auch die Möglichkeit gäbe NUR die hochgeladenen Dateien zu löschen und so den Speicherplatz möglichst frei zu halten?
by SoSci Survey (304k points)
SoSci Survey unterbindet das Löschen jeglicher Daten inkl. Dateien, solange eine Studie im Feld ist. Datensicherheit steht da an erster Stelle. Wir verbringen selbst unter diesen Einschränkungen schon einen nicht unerheblichen Teil unserer Arbeitszeit damit, versehentlich gelöschte Daten wiederherzustellen. Zum Beispiel weil jemand dachte, alle nowendigen Daten heruntergeladen zu haben, dies aber nicht überprüft hatte...

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...