if ($metaalreadyset === true) { $time = '[' . date('c') . ']'; echo "{$time} 0: metadata already set for '{$target_file}'\n"; exit(0); } // download file from irods to tmp $localfile = '/tmp/' . basename($target_file); if (file_exists($localfile)) { unlink($localfile); } $irodsfile->open("r"); $str = ''; while (($buffer = $irodsfile->read(1024 * 1024)) != NULL && connection_status() == 0) { $str = $str . $buffer; } $irodsfile->close(); file_put_contents($localfile, $str); extactExif($localfile, $irodsfile); if (file_exists($localfile)) { unlink($localfile); } $time = '[' . date('c') . ']'; echo "{$time} 0: '{$target_file}' processed!\n"; exit(0); } catch (Exception $e) { if (file_exists($localfile)) { unlink($localfile); } $time = '[' . date('c') . ']'; echo "{$time} " . $e->getCode() . ": " . "{$e}"; exit(-1);
} $error = true; break; } $tempuploadfilepath = tempnam(dirname($srcfile['tmp_name']), 'RODS_Web_Upload'); move_uploaded_file($srcfile['tmp_name'], $tempuploadfilepath); //copy($srcfile['tmp_name'], $srcfile['name']); $destfile = new ProdsFile($collection->account, $collection->path_str . "/" . $filename); /* $response=array('success'=> false,'log'=> ''.$collection->account); echo json_encode($response); exit(0); */ $destfile->open('w', $resource); $destfile->write(file_get_contents($tempuploadfilepath)); $destfile->close(); if (AUTO_EXTRACT_EXIF === true) { extactExif($tempuploadfilepath, $destfile); } $numfiles++; unlink($tempuploadfilepath); } if ($error === false) { $response = array('success' => true, 'msg' => "Uploaded file successfully."); } echo json_encode($response); } catch (Exception $e) { $response = array('success' => false, 'errmsg' => $e->getMessage(), 'errcode' => $e->getCode()); echo json_encode($response); } function extactExif($localfile, $remoteRODSfile)
<?php require_once "/Path/to/Prods/src/Prods.inc.php"; // make an iRODS account object for connection, assuming: // username: demouser, password: demopass, server: srbbrick15.sdsc.edu, port: 1247 $account = new RODSAccount("srbbrick15.sdsc.edu", 1247, "demouser", "demopass"); //create an file object for read, assuming the path is "/tempZone/home/demouser/test_read.txt" $myfile = new ProdsFile($account, "/tempZone/home/demouser/test_read.txt"); //read and print out the file $myfile->open("r"); echo "the file reads: <pre>"; while ($str = $myfile->read(4096)) { echo $str; } echo "</pre>"; //close the file pointer $myfile->close(); //create an file object for write, assuming the path is "/tempZone/home/demouser/test_write.txt" $myfile = new ProdsFile($account, "/tempZone/home/demouser/test_write.txt"); //write hello world to the file, onto "demoResc" as resource. Note that resource name is //required here by method open(), because iRODS needs to know which resource to write to. $myfile->open("w+", "demoResc"); $bytes = $myfile->write("Hello world!\n"); //print the number of bytes writen echo "{$bytes} bytes written <br/>\n"; $myfile->close();
$response = array('success' => false, 'log' => 'Resource name not specified'); echo json_encode($response); exit(0); } try { $parent = ProdsDir::fromURI($ruri, false); if (empty($parent->account->pass)) { $acct = $_SESSION['acct_manager']->findAcct($parent->account); if (empty($acct)) { $response = array('success' => false, 'log' => 'Authentication Required'); echo json_encode($response); exit(0); } $parent->account = $acct; } if (empty($parent->account->zone)) { $parent->account->getUserInfo(); } $file = new ProdsFile($parent->account, $parent->path_str . '/' . $name); if ($file->exists()) { $response = array('success' => false, 'log' => 'Path ' . $parent->path_str . '/' . $name . ' already exists!'); } else { $file->open('w', $resc); $file->close(); $response = array('success' => true, 'log' => "new file '{$name}' created!"); } echo json_encode($response); } catch (Exception $e) { $response = array('success' => false, 'log' => $e->getMessage()); echo json_encode($response); }