从 Oracle 将文件发布到 .php 页面

发布于 2024-08-13 23:23:26 字数 737 浏览 2 评论 0原文

在我的网站上,我有一个 .php 脚本,我们的客户可以在其中发布订单。

  $destname = CreateUniqueOrderFileName();
  if (is_uploaded_file($_FILES['file']['tmp_name'])) {
    if (move_uploaded_file($_FILES['file']['tmp_name'], $destname))         
      echo "OK";
    else 
      echo "ERROR: move";                  
  }

因此,对于我的客户,我用 C# 编写了一个应用程序,如果我上传订单,我会执行以下操作:

var client = new WebClient();
byte[] response = client.UploadFile("http://mywebsite/order.php", "POST", orderFile);

但现在我有一个使用 Oracle 的客户,想要使用 PL/SQL 发布订单。 我试图告诉他他必须通过 HTTP POST 上传文件并使用 multipart/form-data 但他不明白我的意思。也许我使用了错误的词汇或没有使用标准。

那么是否有人有一个关于如何在 PL/SQL 中将文件发布到 .php 脚本的示例,或者是否有建议在哪里可以找到使用 Oracle 客户端将文件上传到 .php 网页的更多信息。

On my website I have a .php script to which our customers can post orders.

  $destname = CreateUniqueOrderFileName();
  if (is_uploaded_file($_FILES['file']['tmp_name'])) {
    if (move_uploaded_file($_FILES['file']['tmp_name'], $destname))         
      echo "OK";
    else 
      echo "ERROR: move";                  
  }

So for my clients I wrote an app in C# and if I upload an order I do something like this:

var client = new WebClient();
byte[] response = client.UploadFile("http://mywebsite/order.php", "POST", orderFile);

But now I have a customer who uses Oracle and wants to post an order using PL/SQL.
I try to tell him he has to do a file uploaded via HTTP POST and use multipart/form-data but he does not understand me. Maybe I'm using the wrong vocabulary or not using standards.

So does someone have an example of how to post a file to a .php script in PL/SQL or a suggestion where to find more information uploading a file to a .php webpage with an Oracle client.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧话新听 2024-08-20 23:23:26

我认为您可以使用 PL/SQL 包 UTL_HTTP 执行 HTTP POST

http://awads.net/wp/2005/11/30/http-post-from-inside-oracle/

另一种选择可能是使用 Java 存储过程

I think you can use PL/SQL package UTL_HTTP to do a HTTP POST

http://awads.net/wp/2005/11/30/http-post-from-inside-oracle/

Another option might be to use a Java Stored Procedure

遗心遗梦遗幸福 2024-08-20 23:23:26

我们可以找到一种根据 RFC2388 使用 Content-Type multipart/form-data 执行 POST 请求的方法。所以我将 .php 脚本更改为如下所示。

   $fp = fopen('php://input','r');
   $content = stream_get_contents($fp);
   $destname = CreateUniqueOrderFileName();
   $isWritten = @file_put_contents($destname, $content); 
   if($isWritten===false)
   {
     echo "ERROR: could not write file: ".$destname;    
     return;                
   }

使用此功能,我们可以使用 UTL_HTTP 库来执行 HTTP POST 来发布订单。

We could find a way to do a POST request using the Content-Type multipart/form-data according to RFC2388. So I changed the .php script to something like this.

   $fp = fopen('php://input','r');
   $content = stream_get_contents($fp);
   $destname = CreateUniqueOrderFileName();
   $isWritten = @file_put_contents($destname, $content); 
   if($isWritten===false)
   {
     echo "ERROR: could not write file: ".$destname;    
     return;                
   }

Using this we where able to post the order using the UTL_HTTP lib to do a HTTP POST.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文