Re: upload file to server
Posted: Thu Nov 21, 2019 2:51 pm
Ok - and what should happen if you upload a new file in a row for which you have already uploaded one? Should the previously uploaded file be deleted?
You can add this code in PHP AS (After Save) event:johan wrote: Just when I delete a subrow containing a file.
Than the row is deleted in de sql table.
Code: Select all
$uploaddir = $_SERVER['DOCUMENT_ROOT']."/libs/upload/documents/";
deleteFiles('sample_files',$uploaddir); // Replace sample_files with your subform id
function deleteFiles($form, $uploaddir) {
$o = nuSubformObject($form);
for($i = 0 ; $i < count($o->rows) ; $i++){
$fileid = $o->rows[$i][1];
$filename = $o->rows[$i][2];
$delete = $o->rows[$i][3];
if ($delete == "1") {
deleteFile($uploaddir . $fileid. "_". $filename);
}
}
}
function deleteFile($file)
{
if (file_exists($file))
{
if (! unlink($file))
{
nuDebug("Cannot delete the file ".$file);
}
} else
{
nuDebug("File does not exist ".$file);
}
}
Code: Select all
$fileid = $o->rows[$i][1];
$filename = $o->rows[$i][2];
$delete = $o->rows[$i][3];
Code: Select all
nuDebug(nuSubformObject('sample_files'));
Code: Select all
[0] : stdClass Object
(
[id] => sample_files
[foreign_key] => files_main_id
[primary_key] => files_id
[object_id] => 5dd0435d0785413
[table] => files
[action] => save
[rows] => Array
(
[0] => Array
(
[0] => -1 // this is the first column with the primary key
[1] => 1574345421_5dd69acd4e526_5dd69ab2b4db682
[2] => Test.pdf
[3] => 0 // last column: if delete then 1 else 0
)
So I've adjusted[0] => -1
[1] => Werken_aan_een_betere_aanpak_van_schulden_SAMvzw_15_april_2019_1_0.pdf
[2] => 1574364113_5dd6e3d1b3004_5da701edb0fb627
[3] => 0
But when I save my form, the file is not deleted.$fileid = $o->rows[$i][2];
$filename = $o->rows[$i][1];
$delete = $o->rows[$i][3];
Johan[0] : /var/www/html/documents/_[0] : /var/www/htmllibs/upload/documents/_
Could you show the full output of nudebug? And also the PHP code if you have changed anything.johan wrote: NuDebug returns
$[0] => -1
[1] => Werken_aan_een_betere_aanpak_van_schulden_SAMvzw_15_april_2019_1_0.pdf
[2] => 1574364113_5dd6e3d1b3004_5da701edb0fb627
[3] => 0
and the php[0] : stdClass Object
(
[id] => blagen
[foreign_key] => bl_reg_id
[primary_key] => bl_id
[object_id] => 5dd16c9f90f9981
[table] => zzzsys_bijlage
[action] => save
[rows] => Array
(
[0] => Array
(
[0] => 5dd789fd50cf86d
[1] => Werken_aan_een_betere_aanpak_van_schulden_SAMvzw_15_april_2019_1_0.pdf
[2] => 1574406649_5dd789f949bf1_5da701edb0fb627
[3] => 1
)
[1] => Array
(
[0] => -1
[1] =>
[2] =>
[3] => 1
)
)
[columns] =>
[chartData] =>
[chartDataPivot] =>
[edited] => Array
(
[0] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
)
[1] => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
)
)
[deleted] => Array
(
[0] => 1
[1] => 1
)
[fields] => Array
(
[0] => ID
[1] => bl_file_name
[2] => bl_file_id
[3] => nuDelete
)
)
Code: Select all
nuDebug(nuSubformObject('blagen'));
$uploaddir = $_SERVER['DOCUMENT_ROOT']."libs/upload/documents/";
deleteFiles('blagen',$uploaddir); // Replace sample_files with your subform id
function deleteFiles($form, $uploaddir) {
$o = nuSubformObject($form);
for($i = 0 ; $i < count($o->rows) ; $i++){
$fileid = $o->rows[$i][2];
$filename = $o->rows[$i][1];
$delete = $o->rows[$i][3];
if ($delete == "1") {
nudebug(($uploaddir . $fileid. "_". $filename));
deleteFile($uploaddir . $fileid. "_". $filename);
}
}
}
function deleteFile($file)
{
if (file_exists($file))
{
if (! unlink($file))
{
nuDebug("Cannot delete the file ".$file);
}
} else
{
nuDebug("File does not exist ".$file);
}
}
Code: Select all
// nuDebug(nuSubformObject('sample_files'));
$uploaddir = $_SERVER['DOCUMENT_ROOT']."/libs/upload/documents/";
deleteFiles('sample_files',$uploaddir);
function deleteFiles($form, $uploaddir) {
$o = nuSubformObject($form);
for($i = 0 ; $i < count($o->rows) ; $i++){
$fileid = $o->rows[$i][2];
$filename = $o->rows[$i][1];
$delete = $o->rows[$i][3];
if ($delete == "1" && $fileid != '') {
$debug = "
rows id: $id
fileid: $fileid
filename: $filename
delete: $delete
uploaddir: $uploaddir
";
nuDebug($debug);
deleteFile($uploaddir . $fileid. "_". $filename);
}
}
}
function deleteFile($file)
{
if (file_exists($file))
{
if (! unlink($file))
{
nuDebug("Cannot delete the file ".$file);
}
} else
{
nuDebug("File does not exist ".$file);
}
}
[0] :
rows id:
fileid: 1574424664_5dd7d05856d12_5da701edb0fb627
filename: tekst wonen beleidsplan.pdf
delete: 1
uploaddir: /var/www/html/libs/upload/documents/
Johan[0] : File does not exist /var/www/html/libs/upload/documents/1574424664_5dd7d05856d12_5da701edb0fb627_tekst wonen beleidsplan.pdf
http://php.net/manual/en/function.file- ... turnvaluesWarning: This function returns FALSE for files inaccessible due to safe mode restrictions. However these files still can be included if they are located in safe_mode_include_dir.