Description
Describe the bug
I uploaded multiple files for a publication project. After submitting I tried to access it again, and the file was not showing and could not be viewed. There was an "X" to click to remove a file, but when attempting to delete it the swal would pop up but it would not be removed properly.

To Reproduce
Steps to reproduce the behavior (attach screenshots if applicable):
- Go to publication module and propose a publication
- Upload multiple files
- Load the publication again from the creator user and/or a user who has edit permissions
- See error
What did you expect to happen?
The file link should be displayed and downloadable or viewable. When deleting a file, it should work.
Browser Environment (please complete the following information):
- OS: [e.g. Plan9, HURD, Oberon, etc]
- Browser [e.g. chrome, firefox] (note that only these two browsers are supported)
- Version [e.g. 22]
Server Environment (if known):
Note: We only support the most recent release of LORIS.
- LORIS Version: [e.g. 22.0.0]
- Linux distribution and Version: [e.g. Ubuntu 16.04, CentOS 7]
- MySQL/MariaDB Version: [e.g. MySQL 5.7, MariaDB 10.3]
Additional context
The following errors may be related:
PHP Fatal error: Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'null' for column
test_dev_270.
publication.
projectat row 1 in /var/www/Loris/php/libraries/Database.class.inc:583\nStack trace:\n#0 /var/www/Loris/php/libraries/Database.class.inc(583): PDOStatement->execute()\n#1 /var/www/Loris/php/libraries/Database.class.inc(490): Database->_realupdate()\n#2 /var/www/Loris/modules/publication/ajax/FileUpload.php(628): Database->update()\n#3 /var/www/Loris/modules/publication/ajax/FileUpload.php(21): editProject()\n#4 /var/www/Loris/htdocs/AjaxHelper.php(120): require('...')\n#5 {main}\n thrown in /var/www/Loris/php/libraries/Database.class.inc on line 583, referer: https://test-dev-270.loris.ca/publication/view_project?id=1 [Fri Feb 21 13:51:00.073963 2025] [php:error] [pid 10203] [client 192.168.122.1:37196] PHP Fatal error: Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'null' for column
test_dev_270.
publication.
project at row 1 in /var/www/Loris/php/libraries/Database.class.inc:583\nStack trace:\n#0 /var/www/Loris/php/libraries/Database.class.inc(583): PDOStatement->execute()\n#1 /var/www/Loris/php/libraries/Database.class.inc(490): Database->_realupdate()\n#2 /var/www/Loris/modules/publication/ajax/FileUpload.php(628): Database->update()\n#3 /var/www/Loris/modules/publication/ajax/FileUpload.php(21): editProject()\n#4 /var/www/Loris/htdocs/AjaxHelper.php(120): require('...')\n#5 {main}\n thrown in /var/www/Loris/php/libraries/Database.class.inc on line 583, referer: https://test-dev-270.loris.ca/publication/view_project?id=1 PHP Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '[camibdn@gmail.com](mailto:camibdn@gmail.com)' for key 'UK_publication_collaborator_Email' in /var/www/Loris/php/libraries/Database.class.inc:415\nStack trace:\n#0 /var/www/Loris/php/libraries/Database.class.inc(415): PDOStatement->execute()\n#1 /var/www/Loris/php/libraries/Database.class.inc(232): Database->_realinsert()\n#2 /var/www/Loris/modules/publication/ajax/FileUpload.php(83): Database->insert()\n#3 /var/www/Loris/modules/publication/ajax/FileUpload.php(19): uploadPublication()\n#4 /var/www/Loris/htdocs/AjaxHelper.php(120): require('...')\n#5 {main}\n thrown in /var/www/Loris/php/libraries/Database.class.inc on line 415, referer: https://test-dev-270.loris.ca/publication [Fri Feb 21 14:00:14.580120 2025] [php:error] [pid 9787] [client 192.168.122.1:57108] PHP Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '[camibdn@gmail.com](mailto:camibdn@gmail.com)' for key 'UK_publication_collaborator_Email' in /var/www/Loris/php/libraries/Database.class.inc:415\nStack trace:\n#0 /var/www/Loris/php/libraries/Database.class.inc(415): PDOStatement->execute()\n#1 /var/www/Loris/php/libraries/Database.class.inc(232): Database->_realinsert()\n#2 /var/www/Loris/modules/publication/ajax/FileUpload.php(83): Database->insert()\n#3 /var/www/Loris/modules/publication/ajax/FileUpload.php(19): uploadPublication()\n#4 /var/www/Loris/htdocs/AjaxHelper.php(120): require('...')\n#5 {main}\n thrown in /var/www/Loris/php/libraries/Database.class.inc on line 415, referer: https://test-dev-270.loris.ca/publication PHP Fatal error: Uncaught TypeError: htmlspecialchars(): Argument #1 ($string) must be of type string, null given in /var/www/Loris/modules/publication/ajax/FileUpload.php:917\nStack trace:\n#0 /var/www/Loris/modules/publication/ajax/FileUpload.php(917): htmlspecialchars()\n#1 /var/www/Loris/modules/publication/ajax/FileUpload.php(618): editUploads()\n#2 /var/www/Loris/modules/publication/ajax/FileUpload.php(21): editProject()\n#3 /var/www/Loris/htdocs/AjaxHelper.php(120): require('...')\n#4 {main}\n thrown in /var/www/Loris/modules/publication/ajax/FileUpload.php on line 917, referer: https://test-dev-270.loris.ca/publication/view_project?id=2 [Fri Feb 21 13:59:43.802275 2025] [php:error] [pid 10462] [client 192.168.122.1:47334] PHP Fatal error: Uncaught TypeError: htmlspecialchars(): Argument #1 ($string) must be of type string, null given in /var/www/Loris/modules/publication/ajax/FileUpload.php:917\nStack trace:\n#0 /var/www/Loris/modules/publication/ajax/FileUpload.php(917): htmlspecialchars()\n#1 /var/www/Loris/modules/publication/ajax/FileUpload.php(618): editUploads()\n#2 /var/www/Loris/modules/publication/ajax/FileUpload.php(21): editProject()\n#3 /var/www/Loris/htdocs/AjaxHelper.php(120): require('...')\n#4 {main}\n thrown in /var/www/Loris/modules/publication/ajax/FileUpload.php on line 917, referer: https://test-dev-270.loris.ca/publication/view_project?id=2