小编Mat*_*lin的帖子

PropertyInfo.GetValue 返回枚举常量名称而不是值

我正在构建一个使用反射来构建序列化数据的序列化组件,但我从枚举属性中得到了奇怪的结果:

enum eDayFlags
{
    Sunday = 1,
    Monday = 2,
    Tuesday = 4,
    Wednesday = 8,
    Thursday = 16,
    Friday = 32,
    Saturday = 64
}

public eDayFlags DayFlags { get; set; }
Run Code Online (Sandbox Code Playgroud)

现在进行真正的测试

Obj Test = new Obj();
Test.DayFlags = eDayFlags.Friday;
Run Code Online (Sandbox Code Playgroud)

序列化的输出是:

DayFlags=星期五

但是如果我在变量中设置两个标志:

Obj Test = new Obj();
Test.DayFlags = eDayFlags.Friday;
Test.DayFlags |= eDayFlags.Monday;
Run Code Online (Sandbox Code Playgroud)

序列化的输出是:

DayFlags=34

我在序列化组件中所做的事情非常简单:

//Loop each property of the object
foreach (var prop in obj.GetType().GetProperties())
{

     //Get the value of the property
     var x = …
Run Code Online (Sandbox Code Playgroud)

c# reflection

5
推荐指数
1
解决办法
3523
查看次数

使用Guzzle将文件发布到Web服务

我一直在尝试几个小时来发出一个发送文件的POST请求.

首先尝试了一个简单file_get_contents()的流上下文,似乎没有用.当不同URL上的GET工作时,我从未收到回复.

我在网上搜索了一个HTTP客户端,发现Guzzle在Packagist上下载了400k次; 我决定试用这项技术.记录完好,但是,唉,在发布该死的文件时也会收到错误.

$request = $client
    ->post('/files/')
    ->addPostFields(array('comments' => 'no value'))
    ->addPostFile('file', 'test.doc')
    ->setAuth($this->username, $this->password);
Run Code Online (Sandbox Code Playgroud)

我花了几个小时阅读和搜索网络,发现我有一个"417期望失败"问题.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>417 Expectation Failed</title>
</head><body>
<h1>Expectation Failed</h1>
<p>The expectation given in the Expect request-header
field could not be met by this server.
The client sent<pre>
    Expect: 100-Continue, 100-Continue
</pre>
</p><p>Only the 100-continue expectation is supported.</p>
</body></html>
Run Code Online (Sandbox Code Playgroud)

在网上搜索了更多内容后,我最终阅读了由Guzzle自动发送的"Expect:100-continue"标题,所以我尝试了:

$request->removeHeader('expect');
Run Code Online (Sandbox Code Playgroud)

我现在最终得到了一个糟糕的请求:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent …
Run Code Online (Sandbox Code Playgroud)

php curl file-get-contents guzzle

5
推荐指数
1
解决办法
5875
查看次数

RewriteCond HTTP_HOST 仍然通过

我正在构建一个 preprod 环境,客户端和开发人员将能够检查他们即将建立的网站是否一切正常,但我必须禁用所有 HTTPS 重定向,因为此时它会落在 PROD 站点中HOSTNAME 在请求中发送。

这是我正在使用的示例之一:

RewriteCond %{HTTP_HOST} (www\.)?domain\.com
RewriteCond %{HTTP_HOST} ^s\.domain\.com
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/?basket/$
RewriteCond %{REQUEST_URI} !^/?basket/add/
RewriteCond %{REQUEST_URI} !^/?basket/delete/
RewriteCond %{REQUEST_URI} !^/?basket/modify/
RewriteCond %{REQUEST_URI} !^/?basket//add/
RewriteCond %{REQUEST_URI} !^/?basket//delete/
RewriteCond %{REQUEST_URI} !^/?basket//modify/
RewriteCond %{REQUEST_URI} !^/?basket/info_panier.js
RewriteRule ^/?basket/.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Run Code Online (Sandbox Code Playgroud)

问题是,即使我访问:

http://s.domain.com/basket//coordonnees/login/
Run Code Online (Sandbox Code Playgroud)

它仍然将我重定向到 HTTPS 版本,但我在 s.domain.com 上有一个重写条件,说要跳过此规则......我做错了什么?

疯狂编码器

mod-rewrite

4
推荐指数
1
解决办法
2万
查看次数

如何在Laravel 5.0中获取上传文件的tmp_name

使用Laravel 5,我一直试图获取一个上传的文件并使用文件系统外观移动它,以便从Laravel使用的flysystem功能中获益.

问题是,即使我试图获得路径,tmp_name,diskname或wathever属性代表$ _FILES [文件] [tmp_name]我似乎无法访问它!

我不想使用$ _FILES,因为它违反了最佳做法,如果有什么要改变,它将不再起作用,所以我真的想要使用:

$request->file('import')
Run Code Online (Sandbox Code Playgroud)

访问我导入的文件.

在UploadedFile类中有一个move方法,但我需要设置一个本地路径,这不是必须的.然后在FileSystem合同中有一个移动meethod,但它要求我不知道的本地路径,因为我找不到UploadedFile的本地tmp_name ...

我怎么会这样做,我真的迷失在这里.

php symfony laravel

4
推荐指数
1
解决办法
6054
查看次数

如果找不到密钥,则将关键字添加到关联数组

给定像这样的PHP关联数组:

$a = array(
    'color' => 'red',
    'taste' => 'sweet',
    'shape' => 'round',
    'name'  => 'apple'
);
Run Code Online (Sandbox Code Playgroud)

我想搜索一个键,如果没有找到,我想添加'myKey'=> 0.做这种事的最好方法是哪种?

php

3
推荐指数
2
解决办法
1万
查看次数

其中OR在哪里mysql - mysql查询两个where子句

我有一个SQL语句:

$sql =" SELECT DISTINCT
            scr.*  
        FROM scr 
            LEFT JOIN `users` ON `users`.user_id=scr.user_id

        WHERE $email_filter LOWER(scr.genre) LIKE '%$search_word_fix%' **HERE** $psez protage $wwc $prevoption $locatio  $rats $rat1 $rat2 $rat3 $rat4          
        GROUP by scr.sp_name  
        ORDER BY scr.grade DESC";
Run Code Online (Sandbox Code Playgroud)

当我在"HERE"中添加'%$ search_word_fix%'等较低(scr.classification)时,它不会显示正确的结果.我在想(比如scr.genre ="searchkeyword"和其他过滤器)或者(其中scr.classification ="searchkeyword"和其他过滤器)

php mysql sql

3
推荐指数
1
解决办法
2013
查看次数

Groovy withEnv 插值不起作用

我们正在重新设置我们的 Jenkins 服务器,因为我们发生了一次愚蠢的崩溃并丢失了所有配置。(现在计划备份)

我们的多分支管道 groovy 脚本的第一项是:

withEnv(['LB_PROJECT_ROOT=$WORKSPACE']) {
Run Code Online (Sandbox Code Playgroud)

我放了一个

sh 'env'
Run Code Online (Sandbox Code Playgroud)

就在此之前,我可以看到 WORKSPACE 设置为正确的值。路径没问题并且存在于构建节点上,但在LB_PROJECT_ROOT 中没有进行插值。相反,LB_PROJECT_ROOT 以值“$WORKSPACE”结束,这使我们的构建失败。

我们想知道它是否可能是一个缺失的插件可以做到这一点。之前和之后的“sh 'env'”都表明 WORKSPACE 已设置,LB_PROJECT_ROOT 仅在 withEnv 之后设置(这是有道理的),但值错误!

groovy jenkins jenkins-pipeline

3
推荐指数
1
解决办法
2826
查看次数

导航菜单指示用户所在的位置

我的页面上有一个菜单,有4个不同的区域,一个人可以导航到:

Home
About
Contact
Privacy
Run Code Online (Sandbox Code Playgroud)

我希望当用户点击其中一个链接时,我会在菜单中看到它的指示.所以如果用户点击"关于",他会看到

Home
-->About
Contact
Privacy
Run Code Online (Sandbox Code Playgroud)

我正在使用带有jquery的ol来填充页面的另一部分,其中包含与被点击主题相关的数据.

我的HTML:

 <div class='home'><a href='#' class='navigate' id='home'><ol>Home</ol></a></div>
 <div class='about'><a href='#' class='navigate' id='about'><ol>About</ol></a></div>
 <div class='contact'><a href='#' class='navigate' id='contact'><ol>Contact</ol></a></div>
 <div class='privacy'><a href='#' class='navigate' id='privacy'><ol>Privacy</ol></a></div>
Run Code Online (Sandbox Code Playgroud)

导航类:

 $('.navigate').click (function() {

 //Show a animiated gif
 $('#loading').show();

 //id of module        
    var module = $(this).attr('id');

 //get id of modules a href id
            var childId = $("."+module).children("a").attr("id");

 //add --> to the div
            $('.'+$(this).attr('id')).html("-->"+childId);

 //post to navigate.php and do stuff.
            $.ajax({
                   type: "POST",
                   url: "navigate.php",
                   data: "module="+module,
                   success: function(result) …
Run Code Online (Sandbox Code Playgroud)

html css jquery

1
推荐指数
1
解决办法
53
查看次数

由于参数无效,move_uploaded_file()无法打开流 - PHP

我有这个代码将我上传的文件移动到特定目录:

if (isset($_FILES["image"]["name"])){ 
    if (!is_dir('pf/' . $uid)) {
        mkdir('pf/' . $uid);
        $large_image_location = "pf/" . $uid;
    }else {
        $large_image_location = "pf/" . $uid;
    }

    chmod ($large_image_location, 0777);
    move_uploaded_file("$userfile_tmp", "$large_image_location/$userfile_tmp");    

}
Run Code Online (Sandbox Code Playgroud)

但是,这会产生以下错误:

( ! ) Warning: move_uploaded_file(pf/BfyhieniKJGGqTNm/C:\wamp\tmp\phpF08A.tmp) [function.move-uploaded-file]: failed to open stream: Invalid argument in C:\wamp\www\mingle\upload_dp.php on line 26
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题的任何帮助将不胜感激!

php

-1
推荐指数
1
解决办法
5574
查看次数

创建共享内存时出错

我必须调试使用Delphi CodeGear 2009构建的应用程序,该应用程序是由我以外的其他人构建的,此人不再是该公司的一部分.

奇怪的问题,当我将项目加载到代码设备并运行应该实际工作的软件时,我收到一个错误:

$ 753CB9BC第一次机会异常.异常类异常,消息'创建共享内存时出错全局\ {B40FBC0C-FEBD-11DD-B3EA-FC6656D89593}(5)'.处理OrderCenter.exe(836268)

我甚至无法一步一步地运行软件,它似乎发生在我进入运行应用程序本身之前.我不知道如何解决这个错误,我肯定可以查看代码并理解它并可能修改它但我肯定根本不理解如何修复这样的错误没有谷歌上的任何文档.我尝试浏览谷歌和SO一段时间尝试各种关键字组合,没有任何结果.

我该如何调试呢?我从哪里开始寻找?


编辑#1

为了澄清,我甚至在进入应用程序之前就遇到了异常,它甚至无法调试.我很乐意尽快粘贴堆栈跟踪,以便每个人都可以看到崩溃的位置.抱歉没有考虑到这一点.

我在Google上搜索了确切的错误消息,但我没有找到任何有用的信息.这里有几个例子:

http://www.google.ca/#hl=fr&output=search&sclient=psy-ab&q=Error+creating+shared+memory&oq=Error+creating+shared+memory

http://www.google.ca/#hl=fr&sclient=psy-ab&q=delphi+Error+creating+shared+memory&oq=delphi+Error+creating+shared+memory


编辑#2

感谢花时间指定存在某种初始化过程的人,我在所有文件中搜索并找到该过程并发现代码在这里崩溃:

if not AlreadyRunning(ProcessName, TFormMain, False, False, True) then
Run Code Online (Sandbox Code Playgroud)

如果,我试着看一下这段代码的声明,看来它确实试图创建一个全局共享内存对象,可能是某种Mutex来防止双重初始化.

我的第一个猜测是,除了用户现在能够运行2个以上相同的应用程序之外,我可能只是放弃这部分代码而没有任何直接后果.

另外,我想知道为什么这会失败(Win7,管理员帐户)?

PS:我无法找到最初发生错误的原因是因为应用程序处于发布模式而不是调试模式,我花了一些时间和深度UI搜索来注意它在文件中的Build配置下经理.没有其他任何东西表明我在发布模式,直到我尝试在应用程序的初始化部分放置断点,它不会停止...

delphi

-5
推荐指数
1
解决办法
1038
查看次数

有没有办法阻止HTML警告?

正如标题所述:

Warning: getimagesize failed to open, etc
Run Code Online (Sandbox Code Playgroud)

有没有办法忽略这些,这意味着不打印它们?原因是,我基本上不在乎,它们非常罕见,我显然在进行测试但是当这样做时,我宁愿设置代码给我发电子邮件,而不是向用户发送一条很难看的消息.

这个问题适用于任何警告.

html php

-7
推荐指数
1
解决办法
227
查看次数