api_upload.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. session_start();
  3. include("connectSQL_Component.php");
  4. $keys = [];
  5. $values = [];
  6. $APIName = "";
  7. if (isset($_FILES['files']) && isset($_FILES['video']) && isset($_FILES['thumbnail'])) {
  8. if ($_POST['APIName'] != "" && $_POST['software'] != "") {
  9. $APIName = $_POST['APIName'];
  10. $foldername = '../../assets/API/Universal/' . $_POST['software'] . '/' . $_POST['APIName'];
  11. if (!is_dir($foldername)) mkdir($foldername);
  12. for ($count = 0; $count < count($_FILES['files']['name']); $count++) {
  13. if ($_FILES['files']['name'][$count] != $_FILES['thumbnail']['name'] && $_FILES['files']['name'][$count] != $_FILES['video']['name']) {
  14. move_uploaded_file($_FILES['files']['tmp_name'][$count], $foldername . '/' . $_FILES['files']['name'][$count]);
  15. }
  16. }
  17. $thumbnail_path = $foldername . '/' . $_FILES['thumbnail']['name'];
  18. $ext = pathinfo($_FILES['video']['name'], PATHINFO_EXTENSION);
  19. move_uploaded_file($_FILES['video']['tmp_name'], $foldername . '/' . $APIName . "." . $ext);
  20. move_uploaded_file($_FILES['thumbnail']['tmp_name'], $thumbnail_path);
  21. imagepng(imagecreatefromstring(file_get_contents($thumbnail_path)), $foldername . '/' . $APIName . ".png"); //轉成 api名稱.png
  22. unlink($thumbnail_path); //刪除原始檔案
  23. $placeholder = "?";
  24. $count = 0;
  25. foreach ($_POST as $key => $value) {
  26. if ($key != "") {
  27. array_push($keys, "[" . htmlspecialchars($key) . "]");
  28. array_push($values, htmlspecialchars($value));
  29. $count++;
  30. }
  31. }
  32. array_push($values, $_SESSION['UserID']); //將 [uploaderID] 放入
  33. $placeholder = $placeholder . str_repeat(",?", $count - 1);
  34. $params = implode(",", $keys);
  35. $sql = "IF NOT EXISTS (SELECT [APIName] FROM [API_Table] WHERE [APIName] = '{$_POST["APIName"]}')
  36. BEGIN
  37. INSERT INTO [API_Table]
  38. (
  39. " . $params . ",[uploaderID]
  40. )
  41. VALUES
  42. (" . $placeholder . ",?);
  43. END";
  44. $stmt = sqlsrv_query($conn, $sql, $values);
  45. if ($stmt === false) {
  46. if (($errors = sqlsrv_errors()) != null) {
  47. foreach ($errors as $error) {
  48. echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
  49. echo "code: " . $error['code'] . "<br />";
  50. echo "message: " . $error['message'] . "<br />";
  51. }
  52. }
  53. } else {
  54. include("api_video_tool.php");
  55. }
  56. } else
  57. echo "Upload folder name is empty";
  58. } else
  59. echo "Upload files is empty";