我正在用PHP构建API.其中一种方法是place.new(PUT请求).它需要几个字符串字段,它还需要一个图像.但是我无法让它发挥作用.使用POST请求很简单,但我不知道如何使用PUT以及如何在服务器上获取数据.
谢谢您的帮助!
$curl = curl_init();
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, $this->url);
curl_setopt($curl, CURLOPT_PUT, 1);
curl_setopt($curl, CURLOPT_INFILE, $image);
curl_setopt($curl, CURLOPT_INFILESIZE, filesize($image));
$this->result = curl_exec($curl);
curl_close($curl);
Run Code Online (Sandbox Code Playgroud)
if ( $im_s = file_get_contents('php://input') )
{
$image = imagecreatefromstring($im_s);
if ( $image != '' )
{
$filename = sha1($title.rand(11111, 99999)).'.jpg';
$photo_url = $temp_dir . $filename;
imagejpeg($image, $photo_url);
// upload image
...
}
}
Run Code Online (Sandbox Code Playgroud)
// Correct: /Users/john/Sites/....
// Incorrect: http://localhost/...
$image = fopen($file_on_dir_not_url, …Run Code Online (Sandbox Code Playgroud) 有没有办法获得所有当前连接用户的列表?我检查了许多聊天室教程,但没有一个提供这种方法.它是否可能,如果是这样,如何才能正确地实现Meteor方式呢?
我正在寻找NodeJS中使用的Jade模板引擎的PHP实现.我最近尝试过Jade.php,但它不完整,因为它不支持继承或部分.我也看过PHPNativeJadeRenderer,但它依赖于shell_exec通过npm jade模块解析模板文件,我对使用该方法并不是很满意.
有人知道Jade模板引擎的完整PHP OOP端口吗?
如何让客户端method.call等待异步函数完成?目前它到达函数的末尾并返回undefined.
Client.js
Meteor.call( 'openSession', sid, function( err, res ) {
// Return undefined undefined
console.log( err, res );
});
Run Code Online (Sandbox Code Playgroud)
Server.js
Meteor.methods({
openSession: function( session_id ) {
util.post('OpenSession', {session: session_id, reset: false }, function( err, res ){
// return value here with callback?
session_key = res;
});
}
});
Run Code Online (Sandbox Code Playgroud) 我已设法使用以下代码创建新的电子表格文档:
# Authorize
client = gdata.docs.client.DocsClient(source='TestDoc')
client.http_client.debug = False
client.client_login(self.cfg.get('google', 'email'), self.cfg.get('google', 'password'), source='TestDoc', service='writely')
# Create our doc
document = gdata.docs.data.Resource(type='spreadsheet', title='Test Report')
document = client.CreateResource(document)
Run Code Online (Sandbox Code Playgroud)
我的理解是,您必须使用电子表格服务进行身份验证才能操作电子表格.
# Connect to spreadsheet API
client = gdata.spreadsheet.service.SpreadsheetsService()
client.email = self.cfg.get('google', 'email')
client.password = self.cfg.get('google', 'password')
client.source = 'TestDoc'
client.ProgrammaticLogin()
Run Code Online (Sandbox Code Playgroud)
我的问题是如何从上面第一步中的创建中获取电子表格密钥,以便使用gdata.spreadsheet api访问该电子表格?
如何在实现单例设计模式的模块上继承events.EventEmitter方法?
var EventEmitter = require('events').EventEmitter;
var Singleton = {};
util.inherits(Singleton, EventEmitter);
Singleton.createClient = function(options) {
this.url = options.url || null;
if(this.url === null) {
this.emit('error', 'Invalid url');
} else {
this.emit('created', true);
}
}
module.exports = Singleton;
Run Code Online (Sandbox Code Playgroud)
这会导致错误: TypeError: Object #<Object> has no method 'emit'
我有一个成功登录时重定向的路由
app.post('/login', function(req, res){
if(req.body.password === Server.cfg.auth.userPass) {
req.session.user = {nick: req.body.username, pass: req.body.password}
res.redirect('/chat')
} else {
res.render('user/login', { locals: { error: 'Invalid password' } })
}
})
Run Code Online (Sandbox Code Playgroud)
重定向似乎工作,因为页面使用正确呈现的jade文件刷新.但是,url仍然说/ login和我的pageTitle变量(通过模板变量设置)也不会改变.如果我在重定向后刷新页面,一切都会改变它应该的样子.只有在重定向之后它才会改变.
我如何使用 NodeJS 将下面的字符串从 basE91 解码为可读文本?
\n\n8D7Hh-9D*.n-!DZrG-#DE-$DD-%DC-sl-tl-BEp2m-CE^Ul-DE}CH-EEE-FED-GEC-<l-=l-hE(.K-iEvqS-jEB-kEB-lEB-mEB-Rm-Sm-%E!{Q-&EDgN-(EG:K-)EE-*EE-+EB-xm-ym-GF{}U-HF()Q-IFt%D-JFE-KFB-LFD-[m-]m-mF;JG-nF7]Q-oF2-pFB-qFC-rFB-Wn-Xn-+FD-,FE-.FB- FE-:FD-;FC-2n-3n-\nRun Code Online (Sandbox Code Playgroud)\n\n* 编辑 *
\n\n使用 basE91 表,我设法将上面的字符串转换为十六进制字符串
\n\n十六进制字符串
\n\n5668557210457684246110336890114713568693668683768671151081161086669112501096769948510868691567726969697069687169676010861108104694046751056911811383106696610769661086966109696682109810937693312381386968103784069715875416969426969436966120109121109717012312585727040418173701637687470697570667670689110993109109705974711107055938111170501127066113706711470668711088104370684470694670664770695870685970675011051110\nRun Code Online (Sandbox Code Playgroud)\n\n然后我将其输入缓冲区
\n\nvar buf = new Buffer(hex, 'hex');\nconsole.log(buf.toString('utf8'));\nRun Code Online (Sandbox Code Playgroud)\n\n这给了我:
\n\nVhUr\xe2\x96\xbaEv?$a\xe2\x96\xba3h?\xe2\x97\x84G\xe2\x80\xbcV??f??v?q\xc2\xa7\xe2\x96\xba?\xe2\x96\xac\xe2\x96\xba?f?\xe2\x86\x95P\xe2\x96\xba?v?Hhi\xe2\x86\x95Vw&???\xe2\x99\xa0??\xe2\x96\xac?va\xe2\x96\xba?\xe2\x99\xa6i@Fu\xe2\x96\xbaV?\xe2\x86\x91\xe2\x97\x8481\xe2\x99\xa0if\xe2\x96\xbav?if\xe2\x96\xba??h! ?\xe2\x96\xba??1#?8ih\xe2\x96\xba7?\xe2\x99\xa0?\xc2\xa7?T\xe2\x96\xac??&??6?a \xe2\x96\xba?!\xe2\x96\xba?\xe2\x86\xa8\xe2\x98\xba#\xe2\x86\x95XW'\xe2\x99\xa6\xe2\x99\xa6\xe2\x86\x91\xe2\x86\xa87\xe2\x98\xba\xe2\x96\xac7htpiupfvph?\xe2\x96\xba?1 \xe2\x96\xba?\xe2\x99\xa3?G\xe2\x97\x84\xe2\x96\xbap U??\xe2\x97\x84\xe2\x86\xa8\xe2\x99\xa3\xe2\x98\xba\xe2\x86\x95pf\xe2\x97\x847\xe2\x99\xa0q\xc2\xb6pf??\xe2\x96\xbaCphDpiFpfGpiXphYpgP\xe2\x97\x84\xe2\x99\xa3\xe2\x97\x84\xe2\x96\xba\nRun Code Online (Sandbox Code Playgroud)\n\n我如何将其转化为我可以使用的东西?我怀疑它是一个 JSON 对象......
\n我试图提供一个16x9的"绘图空间",但我希望用户能够选择纵向或横向.我已经在使用了class="embed-responsive embed-responsive-16by9".有没有一种简单的方法来使用CSS进行更改?
请记住,我将在这些容器中添加div.它们在16x9容器中的位置应该相对于它的方向,因为我希望保存用户的绘图空间以便重新创建它.
我每小时都会向模式添加条目,以便跟踪当天的增长情况,同时保持当前的当前分数.现在我希望能够提取过去一周每天的最新记录.结果将是6个记录,在午夜或午夜左右,前6天,第7个记录是当天的最新记录.
这是我的架构:
var schema = new Schema({
aid: { type: Number }
, name: { type: String }
, score: { type: Number }
, createdAt: { type: Date, default: Date.now() }
})
Run Code Online (Sandbox Code Playgroud)
编辑
我已经尝试过使用这个静态,但它会将完全相同的记录拉7次
schema.statics.getLastWeek = function(name, fn) {
var oneday = 60 * 60 * 24
, now = Date.now()
, docs = []
for (var i = 1; i <= 7; i++) {
this.where('name', new RegExp(name, 'i'))
.where('createdAt')
.gte(now - (i * oneday))
.desc('createdAt')
.findOne(function(err,doc){
docs.push(doc)
}) …Run Code Online (Sandbox Code Playgroud) knockoutjs foreach别名不起作用,如下页中的knockoutjs文档中所述:
Note 3: Using “as” to give an alias to “foreach” items
这是一个简单的jsFiddle显示错误.控制台说虽然我已经按照knockoutjs示例,但是没有定义别名......
HTML
<h3>This works</h3>
<ul data-bind="foreach: people">
<li>
<span data-bind="text: $data.name"></span>
<span data-bind="text: $data.age"></span>
</li>
</ul>
<h3>This doesn't work</h3>
<ul data-bind="foreach: { data: people, as: 'person' }">
<li>
<span data-bind="text: person.name"></span>
<span data-bind="text: person.age"></span>
</li>
</ul>?
Run Code Online (Sandbox Code Playgroud)
JS
var data = [
{ name: 'Bob', age: 35 },
{ name: 'Sue', age: 24 },
{ name: 'Rick', age: 57 }
];
var model = …Run Code Online (Sandbox Code Playgroud) node.js ×4
javascript ×3
meteor ×2
php ×2
pug ×2
base91 ×1
css3 ×1
curl ×1
endianness ×1
events ×1
express ×1
jquery ×1
knockout-2.0 ×1
mongodb ×1
mongoose ×1
put ×1
python-2.7 ×1
request ×1
singleton ×1
upload ×1