-
שלום וב'
יש לי קוד פשוט עם שדה להכנסת שם, השם עובר למשתנה ב PHP.
אני מעוניין שתוכן המשתנה יכנס לקובץ TXT והמשתמש יוכל להוריד את הקובץ.
האם אני יכול לעשות שהקובץ לא יווצר בשרת, אלא בדפדפן או משהו אחר, המטרה שהדפדפן יעבוד באופן עצמאי בלי תלות בשרת?
להלן הקוד:<?php $clientName = $_POST['client_name']; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>My form</title> </head> <body> <form method='post'> <label>שם: </label> <input type='text' name='client_name' /> <button type='submit'>שלח</button> </form> <p> <?php $clientName ? print $clientName : print 'הכנס את שמך'; ?> </p> </body> </html> <a href=" "> הורד קובץ TXT </a>
-
<?php $file = "test.txt"; $txt = fopen($file, "w") or die("Unable to open file!"); fwrite($txt, $clientName); fclose($txt); header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename='.basename($file)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); header("Content-Type: text/plain"); readfile($file); ?>
-
@מומחה-באקסס
מושלם! תודה רבה.
לטובת כולם.
בקובץ A.php כותבים:<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Form</title> </head> <body> <form method='get' action='B.php'> <label>name: </label> <input type='text' name='client_name' /> <button type='submit'>Submit</button> </form> </body> </html>
בקובץ B.php כותבים:
<?php $clientName = $_REQUEST['client_name']; $file = "test.txt"; $txt = fopen($file, "w") or die("Unable to open file!"); fwrite($txt, $clientName); fclose($txt); header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename='.basename($file)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); header("Content-Type: text/plain"); readfile($file); ?>
-
@googl יש לך כאן מ"מ:
https://www.codegrepper.com/code-examples/javascript/javascript+create+text+file+and+download
https://stackoverflow.com/questions/24898044/is-possible-to-save-javascript-variable-as-file
זה די פשוט:<input type='text' id="txt"> <br /> <button id="test">הורד קובץ טקסט!</button> <script> function download_txt() { var textToSave = document.getElementById('txt').value; var hiddenElement = document.createElement('a'); hiddenElement.href = 'data:attachment/text,' + encodeURI(textToSave); hiddenElement.target = '_blank'; hiddenElement.download = 'myFile.txt'; hiddenElement.click(); } document.getElementById('test').addEventListener('click', download_txt); </script>
אם זה טקסט ארוך מאד זה כנראה לא יעבוד.
-
@WWW יפה!
למקרים של טקסטים גדולים אפשר להשתמש בblob:function download_txt(textToSave, fileName) { var blob = new Blob([textToSave], { type: 'text/plain' }); var hiddenElement = document.createElement('a'); hiddenElement.href = window.URL.createObjectURL(blob); hiddenElement.target = '_blank'; hiddenElement.download = fileName; hiddenElement.click(); } var text = document.getElementById('txt')?.value ?? 'טקסט לדוגמה' download_txt(text ,'myFile.txt');
-