Html Cgicc嵌入图像-cgi认为图像是脚本
我正在使用Cgicc构建一个简单的CGI应用程序。我试图在我的页面中嵌入一个图像,但是,这是CGI返回的错误Html Cgicc嵌入图像-cgi认为图像是脚本,html,c++,image,cgi,Html,C++,Image,Cgi,我正在使用Cgicc构建一个简单的CGI应用程序。我试图在我的页面中嵌入一个图像,但是,这是CGI返回的错误 127.0.0.1 - - [15/Nov/2014 13:26:52] code 403, message CGI script is not executable ('/cgi-bin/tmp3.jpg') 我正在使用 andrew@ubuntu:~/www$ python -m CGIHTTPSever C++代码< /p> #include <iostream>
127.0.0.1 - - [15/Nov/2014 13:26:52] code 403, message CGI script is not executable ('/cgi-bin/tmp3.jpg')
我正在使用
andrew@ubuntu:~/www$ python -m CGIHTTPSever
<> C++代码< /p>
#include <iostream>
#include <sstream>
#include <string>
#include <unistd.h>
#include <fstream>
#include <stdlib.h>
#include "cgicc/Cgicc.h"
#include "cgicc/HTTPHTMLHeader.h"
#include "cgicc/CgiDefs.h"
#include "cgicc/Cgicc.h"
#include "cgicc/HTTPHTMLHeader.h"
#include "cgicc/HTMLClasses.h"
#define cimg_display 0
#include "CImg.h"
using namespace std;
using namespace cgicc;
int main(int argc, char **argv){
try{
Cgicc formData;
cout << HTTPHTMLHeader()<<endl;
cout << HTMLDoctype(HTMLDoctype::eStrict)<<endl;
// Set up the HTML document
cout << html() << head() << title("Cgicc example") << head() << endl;
cout << body().set("bgcolor","#cccccc").set("text","#000000").set("link","#0000ff").set("vlink","#000080") << endl;
cout << img().set("src", "tmp3.jpg").set("height", "100").set("width", "100");
cout << "<form method=\"GET\" action=\"formProcessor.cgi\">"<<endl;
cout << h2("Input picure info") <<endl;
cout << p("Height")<<endl;
cout << "<input type=\"text\" name=\"height\"> <br>"<<endl;
cout << p("Width");
cout << "<input type=\"text\" name=\"width\"> <br>"<<endl;
cout << "<input type=\"submit\" value=\"Submit\">"<<endl;
cout << "</form>"<<endl;
}catch(exception& e){
cout <<"Error"<<endl;
}
return 0;
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括“cgicc/cgicc.h”
#包括“cgicc/HTTPHTMLHeader.h”
#包括“cgicc/CgiDefs.h”
#包括“cgicc/cgicc.h”
#包括“cgicc/HTTPHTMLHeader.h”
#包括“cgicc/htmlclass.h”
#定义cimg_显示0
#包括“CImg.h”
使用名称空间std;
使用名称空间cgicc;
int main(int argc,字符**argv){
试一试{
Cgicc格式数据;
事实证明,这里的问题不在于代码,而在于我存储图像的目录。我试图从cgi-bin
目录提供图像,这导致服务器将其解释为cgi脚本。我更改了这一行:
cout << img().set("src", "tmp3.jpg").set("height", "100").set("width", "100");
因此,如果没有绝对URL,图像就会被误认为是CGI脚本
cout << img().set("src", "/images/tmp3.jpg").set("height", "100").set("width", "100");
cout << img().set("src", "tmp3.jpg").set("height", "100").set("width", "100");
http://0.0.0.0:8000/cgi-bin/myCGI.cgi